Swing类库和AWT(Abstract Windows Toolkit)可以用来编写视窗界面,AWT较为古老,Swing往AWT中添加了一些内容,生成了一个更丰富的集合
在事件编程中,要创建可以激发事件的对象,还要创建对对象进行响应的侦听器对象,你要编写一个自己永远也不会在任何程序中调用的方法定义
运行一个事件驱动程序时,接发生的事情取决于下一个事件
负责侦听窗口事件的侦听器被称为窗口侦听器,将侦听器与所侦听的对象进行关联的动作被称为注册侦听器
任何窗口侦听器通常都是WindowAdapter类的派生类
包含一条额外的import语句造成的效率损失是很少的,因此,不需要费力去使得import语句数量保持为最少
布局管理器管理添加到一个容器类中去的对象的排列方式
FlowLayoutBorderLayout GridLayout
AWT并没有被Swing取代,而AWT中已经有命名为Frame\Label\Button的类了,所以在Swing中,相应的类被命名为JFrame\JLabel\JButton
按钮激发的是动作事件,这些事件由动作侦听器来处理
不同类型的组件需要不同类型的侦听器来处理他们激发的事件
动作侦听器是一个ActionListener类型的对象,ActionListener不是一个类,而是接口
接口不是一个类,但它是一种类型,一个方法可以有一个ActionListener类型的参数,任意一个实现了ActionListener接口的类都可以作为那个方法的实参
对于一个复杂的Swing GUI,一般将外观与动作分开编程
JPanel对象可以将一些较小的对象,比如按钮和标签,组织成一个较大的组件,然后,通常会将JPanel对象添加到JFrame的内容面板中取。因此,JPanel对象的主要功能之一就是将JFrame分割成一些不同的区域
JFrame和JPanel类都是Container类的子孙,所以这两个类的子孙类都是容器类,可以向每个容器类中添加标签、按钮、面板等东西
Swing类的层次结构图
可以向JTextField或JTextField输入比指定尺寸更多的文本,但多余的文本是不可见的
在一个Swing程序中,抛出一个未被捕获的异常并不会终止GUI,但会将GUI置于一种不可预测的状态
Java不要求在throws子句中声明RuntimeException类及其子孙类,但仍然可以捕获它们。NumberFormatException是RuntimeException类的子孙类
运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见的运行错误。Java编译器要求方法必须声明跑出可能发生的非运行时异常,但是并不要求必要声明跑出位被捕获的运行时异常。