首页 > 代码库 > 9、GUI
9、GUI
一、组件
1、JFrame框架
1、方法
(1)设置JFrame的宽度和高度
java.awt.Window.setSize(int width, int height);
(2)JFrame显示在屏幕中间,如果 c
为 null
,则此窗口将置于屏幕的中央
java.awt.Window.setLocationRelativeTo(Component c);
(3)关闭JFrame程序
javax.swing.JFrame.setDefaultCloseOperation(int operation); // EXIT_ON_CLOSE
(4)添加组件
java.awt.Container.add(Component comp);
2、JDialog 对话框
(1)创建对话框
JDialog(Dialog owner, String title, boolean modal);
3、JOptionPane 对话框
JOptionPane.showMessageDialog(null, "错误信息提示", "标题", JOptionPane.INFORMATION_MESSAGE);
4、面板(Panel)
面板也是一个容器的组件,可以在上面添加
注意:面板不能单独使用,必须在顶层窗口中使用
5、常用组件
(1)JButtion 普通按钮
按钮Button是点击时触发动作事件的组件
(2)JRadioButton 单选按钮
单选按钮,可以让用户从一组选项中选择一个单一条目(例如性别)
(3)JCheckBox 复选框
(4)JLabel 标签
(5)JTextField 文本域
(6)JTextArea 文本区域
(7)JComboBox 组合框
(8)JList 列表框
(9)JmenuBar 菜单条
JMenu菜单、JMenultem菜单项
菜单条(MenuBar)中包含菜单(Menu),菜单中中包含菜单项(MenuItem),注意添加的顺序
二、 布局管理器
1、 FlowLayout 流式布局
Jpanel容器默认的布局管理器流式布局,按照组件添加的顺序,从左到到右将组件排列在容器中.当放满一行,就开始新的一行.在FlowLayout有3个常量FlowLayout可以指定组件的对齐方式
(1)获取水平间隙
int getHgap() ;
(2)设置水平间隙
void setHgap(int hgap) ;
(3)创建布局管理器
FlowLayout(int align, int hgap, int vgap); // 创建一个新的流布局管理器,它具有指定的对齐方式以及指定的水平和垂直间隙,默认五个像素
2、GridLayout 网格布局
GridLyaout是以网格形式管理组件的.组件按照他们添加的顺序从左到右排列
1、规则:
1.行数和列数可以是0但是不能两者都为0
2.如果一个为0另外一个不为0,那么不为0的行或列的大小就是固定的,为0的行或者列有布局管理器动态决定
2、构造方法
GridLayout(int rows, int cols, int hgap, int vgap); // 创建具有指定行数和列数,水平间隔,垂直间隔的网格布局
3、方法
(1)行数
int getRows();
(2)列数
int getColumns() ; // 默认值是1
(3)水平间距
int getHgap() ; // 默认值是0
(4)垂直间距
int getVgap();
set方法设置
3、BorderLayout边框布局
JFrame 容器默认的布局管理器是边框布局.该管理器将容器非为东西南北中5个区域.我们使用add(Component,index)方法可以将组件添加进到BorderLayout中,index是一个常量,有5个值
三、Java事件监听机制
1、事件和事件源
能够创建一个事件并触发该事件的组件称为源对象(按钮能够点击, 那么按钮就是一个源对象,按钮被点击就是一个事件)
一个事件是事件类的实例对象。事件类的根类是java.util.EventObject
事件对象包含事件相关的属性,可以使用EventObject类中的实例方法getSource获得事件的源对象
2、 监听器
Java中,对象表示的每个事件都是由java.util中EventObject类的子类
3、事件处理
Java对组件都有对应的事件监听器,和添加事件监听器方法
4、 窗口事件
Window 对象是一个顶层窗口。窗口(Window)对应的事件叫做窗口事件(WindowEvent),任何窗口(Window)以及窗口的子类都可能触发窗口事件
(1)Window添加窗口事件(WindowEvent)监听器的方法
void addWindowListener(WindowListener l) // 添加指定的窗口侦听器,以从此窗口接收窗口事件
监听Window窗口事件(WindowEvent)的监听器:WindowListener
用于接收窗口事件的侦听器接口。当通过打开、关闭、激活或停用、图标化或取消图标化而改变了窗口状态时,将调用该侦听器对象中的相关方法
(2)WindowListener接口中定义的方法
1 抽象方法: 2 void windowActivated(WindowEvent e) 3 激活窗口 4 void windowClosed(WindowEvent e) 5 关闭窗口 6 void windowClosing(WindowEvent e) 7 正在关闭窗口 8 void windowDeactivated(WindowEvent e) 9 变为非活动窗口 10 void windowDeiconified(WindowEvent e) 11 还原窗口 12 void windowIconified(WindowEvent e) 13 最小化窗口 14 void windowOpened(WindowEvent e) 15 打开窗口
5、 监听器接口适配器
WindowListener接口中的方法都是抽象的,所以即使程序中不想关注某些事件,但是还是要实现所以的方法,比较麻烦,为了方便起见,Java提供了一个针对WindowListener接口的实现类,该类中把WindowListener接口中的方法全部实现,只不过方法体都为空
6、鼠标键盘事件
MouseEvent对象捕获
Java对鼠标事件提供了MouseListener 监听器接口,可以监听鼠标的按下,释放,输入,退出和点击动作。
按键事件可以利用键盘来控制和执行一些动作,如果按下、释放一个键就会触发按键事件。KeyEvent对象可以捕获按键的按下放开和敲击。KeyEvent提供了getkeyChar 来获取按键对应的字符。
char getKeyChar() ; // 返回与此事件中的键关联的字符
Java提供了KeyListener监听器接口来监听按键事件
1 void keyPressed(KeyEvent e) // 按下某个键时调用此方法。 2 void keyReleased(KeyEvent e) // 释放某个键时调用此方法。 3 void keyTyped(KeyEvent e) // 键入某个键时调用此方法。
一:确定事件源(容器或组件)
二:注册监听器
通过事件源对象的addXXXListener()方法将监听器对象注册到该事件源上。
三:监听器对象
注册监听器时,需要指定监听器对象。
以参数的形式进监听器对象传递给addXXXListener()
监听器对象是XXXListener的子类对象或者XXXAdapter的子类对象。
监听器对象一般用匿名内部类来表示。(简化书写)
在覆盖方法的时候,方法的参数一般是XXXEvent类型的变量接收。
事件触发后会把事件打包成对象传递给该变量。(其中包括事件源对象。通过getSource()或者getComponent()获取。)
四:常见的事件监听器
WindowListener 主要用于监听窗口
ActionListener 主要用于用监听组件对象的单击动作
MouseListener 鼠标监听器
KeyListener 监听键盘
五:常见的事件适配器
WindowAdapter
MouseAdapter
KeyAdapter
9、GUI