Java界面编程—API
Java 的 GUI 提供的对象都存在 java.awt 和 java.swing 两个包中。
awt :Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能,属重量级控件(跨平台不够强)
swing:在 awt 的基础上,建立的一套图形系统,其中提供了更多的组件,并且完全由 java 实现,增强了可移植性,属于轻量级控件(跨平台很好)
SWT:The Standard Widget Toolkit(标准部件工具包),是 Eclipe 提供的一个开源的 GUI 编程框架。(http://www.eclipse.org/swt/)
Swing基本框架
图形化设计步骤
1. 创建顶层容器
对应于程序的初始显现窗口,窗口中放入其他菜单、工具栏、文本框、按钮等组件。
顶层容器是图形化界面显示的基础,其他所有组件(控件)都是直接或者间接在顶层容器中的。
Java 中,顶层容器有三种:JFrame(框架窗口、即通常的窗口)、JDialog(对话框)、JApplet(用于设计嵌入在网页中的Java小程序)
2. 创建中间容器、组件
对应于程序中出现的菜单、工具栏(中间容器)、文本框、按钮、单选框、复选框等组件。
3. 将组件加入到容器中
在 Java 中创建组件后,还需要将组件放入到相应的容器中,才能在顶层容器,如窗口中显示出组件。
4. 设置容器内组件的位置
组件添加到容器中,还必须设置好组件的显示位置,一般有两种方法来设置组件的显示位置:1)使用布局管理器来管理组件在容器中的位置;2)按照与容器的相对距离(以像素为单位),精确控制组件的位置
5. 处理组件所产生的事件
即用户执行选择菜单、单击按钮等操作时,就要执行相应的命令,进行相关的程序处理,这就需要设置组件的响应动作。
容器的使用
Java 中容器包含顶层容器和中间容器。设计图形化程序必须要有顶层容器
顶层容器是容纳其他组件和中间容器的基础,即设计图形化程序必须要有顶层容器。 JFrame // JDialog // JApplet //
中间容器是可以包含其他相应组件的容器,但是中间容器和组件一样,不能单独存在,必须依附于顶层容器。常见的中间容器有: JPanel // 最灵活、最常用的中间容器。 JScrollPane // 与 JPanel 类似,但还可在大的组件或可扩展组件周围提供滚动条。 JTabbedPane // 包含多个组件,但一次只显示一个组件,用户可以在组件之间方便的切换。 JToolBar // 按行或按列排列的一组组件,通常是按钮
组件的使用
Swing中的UI组件
JApplet // Java.applet.Applet类的扩展,它含有JRootPane的一个实例
JButton // 能显示文本和图形的按钮,它是AWT按钮组件的替代组件 JCheckBox // 能显示文本和图形的复选框,它是AWT选择组件的替代组件 JCheckBoxMenuItem // 一个复选框菜单项,它是AWT的复选框菜单项组件的替代组件 JComboBox // 带下拉列表的文本框,它是AWT选择组件的替代组件 JComponent // 所有轻量J组件的基类 JDesktopPane // 内部窗体的容器 JDialog // Swing对话框的基类,它扩展了AWT Dialot类 JEditorPane // 用于编辑文本的文本窗格 JFrame // 扩展java.awt.Frame的外部窗体 JInternalFrame // 在JDesktopPane中出现的内部窗体 JLabel // 可显示文本和图标的标签,它是AWT标签组件的替代组件 JLayeredPane // 能够在不同层上显示组件的容器 JList // 显示选项列表的组件,它是AWT列表组件的替代组件 JMenu // 菜单条中显示的一个菜单,它是AWT菜单组件的替代组件 JMenuBar // 用于显示菜单的菜单条,它是AWT菜单条组件的替代组件 JMenuItem // 菜单项,它是AWT菜单项组件的替代组件 JOptionPane // 显示标准的对话框,如:消息和问题对话框 JPanel // 通用容器,它是AWT面板和画布组件的替代组件 JPasswordfield // JTextField的扩展,使输入的字符不可见 JPopupMenu // 弹出式菜单,它是AWT弹出式菜单组件的替代组件 JProgressBar // 进度指示器 JRadioButton // 单选按钮,它是AWT复选框组件的替代组件 JRootPane // 顶层容器,它包含一个玻璃窗格,一个层窗格,一个内容窗格和一个可选的菜单条 JScrollBar // 滚动条,它是AWT滚动条组件的替代组件 JScrollPane // 滚动窗格,它是AWT滚动窗格组件的替代组件 JSeparator // 水平或垂直分隔条 JSlider // 滑杆 JSplitPane // 有两个分隔区的容器,这两个分隔区可以水平排列或者垂直排列且分隔区的大小能自动调整 JTabbedPane // 带选项卡的窗格 JTable // 表格 JTableHeader // 表格头 JTextArea // 用于输入多行文本的文本域,它是AWT文本域组件的替代组件 JTestComponent // 文本组件的基类,它替代AWT的TextComponent类 JTextField // 单行文本域,它替代AWT的单行文本域组件 JTextPane // 简单的文本编辑器 JToggleButton // 两种状态的按钮,它是JCheckBox和JRadioButton组件的基类 JToolBar // 工具条 JToolTip // 当光标停留在一个组件上时,该组件上显示的一行文字 JTree // 用于按钮层次组织数据的结构控件 JViesport // 用于浏览可滚动组件的视口 JWindow // 外部窗口,它是java.awt.Window的扩展
实战练习参考:https://www.cnblogs.com/1693977889zz/p/8377461.html
java.awt 包
public class Color extends Object implements Paint, Serializable // public class Container extends Component // public class FlowLayout extends Object implements LayoutManager, Serializable //
java.swing 包
public interface Action extends ActionListener // public class JButton extends AbstractButton implements Accessible // public class JDialog extends Dialog implements WindowConstants, Accessible, RootPaneContainer // public class JFrame extends Frame implements WindowConstants, Accessible, RootPaneContainer //
java.util 包
public interface EventListener // 表示接口,所有事件监听器接口必须继承该接口
java.awt.event 包
public class ActionEvent extends AWTEvent // public interface ActionListener extends EventListener //