Swing是在AWT的基础上发展而来的轻量级组件,与AWT相比不但改进了用户界面,而且所需的系统资源更少。
下面我们将讲述Swing中常用的顶层容器。
jFrame
jPanel
jScrollPane
jFrame
1. 扩展 java.awt.Frame 类
2. 用于在 Swing 程序中创建窗口
3. 包含边框、标题和用于关闭和图标化窗口的按钮
JFrame 类的方法 |
JFrame() |
JFrame(String title) |
|
void pack() |
void setSize(int width, int height) |
Dimension getSize() |
void setTitle(String name) |
jPanel
1. 中间容器
2. 用于将较小的轻量级组件组合在一起
3. 与内容窗格相似,面板在默认情况下不透明
JPanel 类的方法 |
JPanel() |
JPanel(LayoutManager layout) |
|
void add(Component comp) |
Void setLayout(LayoutManager layout) |
jScrollPane
管理视区、滚动条及可选的行和列的标题视区
JScrollPane 类的方法 |
JScrollPane() |
JScrollPane(Component view) |
|
void setVerticalScrollBarPolicy(int const) |
void setHorizontalScrollBarPolicy(int const) |
jLabel
该组件用于在框架上显示标签。
规范:标签控件加以前缀lbl。
方法 | 说明 |
JLabel() | JLabel()创建一个默认的 JLabel 实例 |
JLabel(String text) | 以指定的文本创建 JLabel 实例 |
JLabel(Icon image) | 以指定的图像创建 JLabel 实例 |
|
|
getText() | 返回标签显示的文本字符串 |
setIcon(Icon icon) | 定义 标签将显示的内容 |
setText(String text) | 定义此组件将要显示的单行文本 |
jTextField
该组件允许输入和编辑单行文本。
规范:文本字段控件加以前缀txt。
方法 | 说明 |
JTextField() | 构造一个新的文本输入框 |
JTextField(String text) | 构造一个新的文本输入框 ,以指定文本作为初始文本 |
|
|
getColumns() | 返回文本字段中的列数 |
setColumns(int columns) | 设置文本字段中的列数,然后使布局无效 |
setHorizontalAlignment(int value) | 设置文本字段中文本的水平对齐方式:JTextField. LEFT JTextField.CENTER JTextField.RIGHT |
jTextArea
组件用于从用户接受多行文本。
规范:文本字段控件加以前缀txa。
说明 | 描述 |
JTextArea() | 构造一个新的文本区 |
JTextArea(String text) | 用指定的显示文本构造一个新的文本区 |
|
|
setFont(Font f) | 设置文本区的字体 |
getText() | 获取文本区中的文本字符串 |
jButton
是用来创建按钮的组件。
规范:文本字段控件加以前缀btn。
方法 | 说明 |
JButton( ) | 创建不带文本和图标的按钮 |
JButton(Icon icon) | 创建带图标的按钮 |
JButton(String text) | 创建带文本的按钮 |
JButton(String text, Icon icon) | 创建带文本和图标的按钮 |
|
|
setRolloverIcon(Icon img) | 当鼠标经过时,显示指定的图标 |
setSelectedIcon(Icon img) | 当选择按钮时,显示 img 指定的图标 |
jCheckBox
是一个用于创建复选框的组件。
规范:文本字段控件加以前缀chk。
方法 | 说明 |
JCheckBox( ) | 创建初始非选中的复选框,且不带文本或 图标 |
JCheckBox(String text) | 用指定的文本创建初始非选中的复选框。 |
JCheckBox(String text, boolean selected) | 用指定文本创建一个复选框,并指定是否 初始选中该复选框 |
jRadioButton
是一个创建单选按钮的组件。
规范:文本字段控件加以前缀rad。
方法 | 说明 |
JRadioButton() | 创建初始非选中的单选按钮,不设置其文本 |
JRadioButton(String text) | 用指定的文本创建非选中的单选按钮 |
JRadioButton(String text, boolean selected) | 用指定的文本和选择状态创建单选按钮 |
jComboBox
是用来创建一个下拉框的组件;
规范:文本字段控件加以前缀cbo。
方法 | 说明 |
JcomboBox() | 创建一个下拉框实例 |
|
|
addItem(Object obj) | 将项添加至项的列表 |
getItemAt(int index) | 返回指定索引位置的列表项 |
getItemCount() | 返回列表(作为对象)中的项数 |
getSelectedItem() | 将当前选择的项作为一个对象返回 |
getSelectedIndex() | 返回当前选择项的索引位置 |
事件处理程序
当激发一个事件时,一个或多个监听器会接收到该事件,并处理该事件。每个事件监听器都是一个类的对象,该类实现特定类型的监听器接口。
Event 类 | 说明 | 接口 |
ActionEvent | 按下按键、双击列表项或选择菜单时 | ActionListener |
AdjustmentEvent | 使用滚动条时 | AdjustmentListener |
ComponentEvent | 调整组件大小,移动速度、隐藏 | ComponentListener |
FocusEvent | 组件失去或获得焦点时 | FocusListener |
ItemEvent | 选择或取消选择菜单项时或单击复选框或列表时 | ItemListener |
WindowEvent | 激活、关闭、打开、退出窗口时 | WindowListener |
TextEvent | 更改文本字段或文本区的值时 | TextListener |
MouseEvent | 移动、单击、拖动或释放鼠标时 | MouseListener, MouseMotionListener MouseListener,MouseMotionListener |
KeyEvent | 从键盘接收输入时 | KeyListener |
布局管理器
FlowLayout
BorderLayout
GridLayout
其中BorderLayout是窗口、框架和对话框类型对象的默认布局管理器。
方法 | 说明 |
BorderLayout( ) | 创建新的BorderLayout,组件之间没有间距 |
|
|
setHgap(int hgap) | 将组件间的水平间距设置为指定的值 |
setVgap(int vgap) | 将组件间的垂直间距设置为指定的值 |
FlowLayout
方法 | 说明 |
FlowLayout( ) | 构造新的中间对齐的FlowLayout, 将垂直和水平间距保留为 5 个像素 |
|
|
setAlignment( int align) | 设置指定布局的对齐方式 |
setHgap(int hgap) | 设置指定布局的水平间距 |
setVgap(int vgap) | 设置指定布局的垂直间距 |
GridLayout
方法 | 描述 |
GridLayout( ) | 创建网格布局,默认为每个组件占用一整列和一单行 |
GridLayout(int rows, int cols) | 用指定的行数和列数创建网格布局。 |
GridLayout(int rows, int cols, int hgap, int vgap) | 用指定的行数和列数、指定的水平和垂直间距创建网格布局 |
|
|
setColumns(int cols) | 将相应布局中的列数设置为指定值 |
setHgap(int hgap) | 将相应布局中的水平间距设置为指定值 |
setVgap(int vgap) | 将相应布局中的垂直间距设置为指定值 |
setRows(int rows ) | 将相应布局中的行数设置为指定值 |