大部分的Swing组件都是JComponent类的直接或者间接子类。
JComponent类是AWT中java.awt.Container的子类
JFrame和Frame一样是一个独立存在的顶级窗口,不能放置在其它容器之中。
JFrame支持通用窗口所有的基本功能,例如窗口最小化、设定窗口大小等等
常见的中间容器:JPanel和JScrollPane
Jpanel
一个无边框,不能被移动、放大、缩小或者关闭的面板。
默认布局管理器是FlowLayout。也可使用构造函数JPanel(LayoutManager layout)或者它的setLayout()方法为其制定布局管理器。
文本组件用于接收用户输入的信息或向用户展示信息,其中包括文本框(JTextField)、文本域(JTextArea)等。
它们都有一个共同父类JTextComponent,JTextComponent是一个抽象类,它提供了文本组件常用的方法
JTextField:文本框,只接收单行文本的输入。
JTextArea:文本域,能接收多行的文本的输入
按钮组件JButton、JCheckBox、JRadioButton等都是抽象类AbstractButton类的直接或间接子类
AbstractButton类中提供了按钮组件通用的一些方法
JCheckBox组件被称为复选框,它有选中(是)/未选中(非)两种状态,如果用户想接收的输入只有“是”和“非”,则可以通过复选框来切换状态。如果复选框有多个,则用户可以选中其中一个或者多个。
JRadioButton组件被称为单选按钮,单选按钮只能选中一个,当一个按钮被选中时,先前被选中的按钮就会自动取消选中
JComboBox组件被称为组合框或者下拉列表框,它将所有选项折叠收藏在一起,默认显示的是第一个添加的选项。当用户点击组合框时,会出现下拉式的选择列表,用户可以从中选择其中一项并显示。创建JComboBox对象的构造方法如下所示
菜单组件分为下拉式菜单和弹出式菜单
下拉式菜单包括
JMenuBar(菜单栏) 水平的菜单栏,它用来管理菜单,不参与同用户的交互式操作。
JMenu(菜单) 菜单,它用来整合管理菜单项。菜单可以是单一层次的结构,也可以是多层次的结构。
JMenuItem(菜单项) 菜单项,它是菜单系统中最基本的组件。
创建下拉式菜单的步骤如下所示
创建一个JMenuBar菜单栏对象,将其放置在JFrame窗口的顶部
创建JMenu菜单对象,将其添加到JMenuBar菜单栏中
创建JMenuItem菜单项,将其添加到JMenu菜单中
在Java的Swing组件中,弹出式菜单用JPopupMenu表示
JPopupMenu弹出式菜单和下拉式菜单一样都通过调用add()方法添加JMenuItem菜单项,但它默认是不可见的,如果想要显示出来,则必须调用它的show(Component invoker,int x,int y)方法
JDialog是Swing的另外一个顶级窗口,它和Dialog一样都表示对话框。
JDialog对话框分:模态对话框和非模态对话框。
所谓模态对话框是指用户需要等到处理完对话框后才能继续与其它窗口交互。
非模态对话框允许用户在处理对话框的同时与其它窗口交互。
JDialog的构造方法中都需要接收一个Frame类型的对象,表示对话框所有者,如果该对话框没有所有者,参数owner可以传入null
参数modal指定JDialog窗口是模态还是非模态,如果modal值为true,对话框就是模态对话框,反之则是非模态对话框。默认情况下, modal的值为false