第十六章、Java图形界面编程
在java中创建GUI(Graphic User Interface)应用程序有两套API:
Swing和AWT(Abstract Windowing Toolkit)。Swing API使用了大量AWT类和接口,
Swing是在AWT的基础上开发的新型GUI组件,SWT弥补了AWT的很多不足,是现在流行的界面
Swing建立步骤:
1.建立容器
2.建立组件
3.将组件添加到容器中
4.设置布局
注意:java.awt.Container类是所有Swing的父类
比较重要的容器
JApplet:在浏览器中运行的容器
JFrame:带有标题和边框的的顶级窗口
JPanel:就是一个矩形区域,其中可以包含图形组件,也可以包含其他JPanel
JScrollPane:一种可以实现水平和垂直的滚动条容器
JDialog:弹出窗口(有标题和边框的小容器)
常用的组件(组件是放在容器中的)
按钮(类JButton),单选按钮(类JRadioButton),复选框(JCheckBox),组合框(类JComBox),
列表框(类JList),文本字段(JTextField),纯文本区域(类JTextArea)等
监听器
在对应的按钮的对象添加监听器(……listener)例如:(这个示例的监听器是使用的匿名内部类)
jbtn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
getMain().getCard().show(getMain().getContentPane(), "result");
}
});//所有的监听器都是接口,所以需要一个类来实现,这个代码使用了匿名内部类来实现
布局管理器
容器使用布局管理器决定组件在容器中的布局方式。布局管理器包括FlowLayout,BorderLayout,GridLayout,GridBagLayout,
CardLayout,BoxLayout,SpringLayout和OverlayLayout,其中最常用的是FlowLayout,BorderLayout,GridLayout
事件
java GUI编程使用委托模型处理组件和容器的事情。事件源本身不处理事件,而是将事件委托给
注册了的事件监听器,由事件监听器中的方法来处理事件。所有事件类均继承自java.util.EventObject类。
每个事件类……Event有对应的事件监听器接口……Listener。想要事件源有事件处理功能,就必须
创建一个组件对象用于添加监听器,其是通过add……Listener()方法来实现的。例如:
jbtn3.addActionListener(new ActionListener() {//注册了的事件监听器,其进行操作
public void actionPerformed(ActionEvent arg0) {
int num =JOptionPane.showConfirmDialog(null, "你确定要退出", "退出", JOptionPane.YES_NO_OPTION);
if(num==0){
System.exit(0);
}
}
});
注意:定义监听器类的方法有很多种,但是建议使用匿名内部类来定义,使用事件适配器类将
降低程序员的代码量