Java图形化界面学习
javax.swing是Java图形界面开发的库
类 | 功能 |
---|---|
JFrame | 窗体 |
JPanel | 面板 (容器) |
JButton | 按钮 |
JLabel | 标签 |
JTextField | 文本域 |
JCheckBox | 复选框 |
JComboBox | 下拉列表 |
1. 创建一个简单的窗口
import javax.swing.*;
public class Swing {
public static void main(String[] args) {
// 创建一个窗口, 构造方法的参数是窗口标题
JFrame frame = new JFrame("My Swing");
// 设置窗口标题
frame.setTitle("NEW Title");
// 当窗口关闭时, 设置为退出这个程序
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置窗口大小
frame.setSize(400, 300);
// 显示窗口
frame.setVisible(true);
}
}
2. JFrame 类
(1). 常用构造方法
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 |
---|---|---|---|---|
public | – | JFrame() | throws HeadlessException | 创建一个最初看不见的窗体 |
public | – | JFrame(String title) | throws HeadlessException | 创建一个指定标题的、最初看不见的窗体 |
(2). 常用成员方法
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 |
---|---|---|---|---|
public | void | setDefaultCloseOperation(int operation) | – | 设置当用户在此窗体上点击“关闭”按钮时将默认发生的操作 |
值(定义在 WindowConstants 类的静态属性)可以为以下四个:
DO_NOTHING_ON_CLOSE : 什么都不做, 即窗口无法关闭
HIDE_ON_CLOSE : 仅关闭窗口
DISPOSE_ON_CLOSE : 隐藏当前窗口,并释放窗体占有的其他资源
EXIT_ON_CLOSE : 关闭窗口并退出程序
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 | 备注 |
---|---|---|---|---|---|
public | void | setSize(int width, int height) | – | 设置窗体大小 | width是宽, height是高 |
public | void | setVisible(boolean b) | – | 设置窗体是否是可以看到的 | true是可以看到, false是看不到 |
3. JPanel 类
JPanel 是面板容器类, 可以加入到JFrame窗体中。JPanel默认的布局管理器是FlowLayout, 其自身可以嵌套组合,在不同子容器中可包含其他组件。
(1). 构造方法
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 |
---|---|---|---|---|
public | – | JPanel() | – | 创建具有双缓冲区和流式布局(FlowLayout)的新面板 |
public | – | JPanel(boolean isDoubleBuffered) | – | 创建具有指定缓冲策略和流式布局(FlowLayout)的新面板 |
public | – | JPanel(LayoutManager layout) | – | 创建具有指定布局管理器的新缓冲面板 |
public | – | JPanel(LayoutManager layout, boolean isDoubleBuffered) | – | 创建具有指定布局管理器和缓冲策略的新面板 |
(2). 常用成员方法
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 |
---|---|---|---|---|
public | Component | add(Component comp) | – | 向面板中添加一个组件 |
4. JButton类
按钮控件类
(1). 常用构造方法
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 |
---|---|---|---|---|
public | – | JButton() | – | 创建一个没有名称的按钮 |
public | – | JButton(String text) | – | 创建一个指定名称的按钮 |
(2). 常用成员方法
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 |
---|---|---|---|---|
public | void | setText(String text) | – | 修改按钮的名称 |
public | void | addActionListener(ActionListener l) | – | 给按钮增加监听器(点击按钮所触发的事件) |
public | void | setContentAreaFilled(boolean) | – | 设置按钮透明 |
5. JLabel类
标签控件类
(1). 常用构造方法
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 |
---|---|---|---|---|
public | – | JLabel() | – | 创建一个没有内容的标签 |
public | – | JLabel(String text) | – | 创建一个指定内容的标签 |
(2). 常用成员方法
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 | 备注 |
---|---|---|---|---|---|
public | void | setText(String text) | – | 修改标签的内容 | – |
public | String | getText() | – | 获取标签的内容 | – |
public | void | setFont(Font font) | – | 设置标签字体的样式 | new Font(String name, int style, int size) |
style : Font.BOLD 粗体, Font.PLAIN 普通, Font.ITALIC 斜体
size: 字体大小
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 | 备注 |
---|---|---|---|---|---|
public | void | setForeground(Color fg) | – | 修改标签的字体颜色 | new Color(int r, int g, int b)三原色 |
public | void | setBackground(Color bg) | – | 修改标签的背景颜色 | new Color(int r, int g, int b)三原色 |
public | void | setOpaque(boolean isOpaque) | – | 设置标签背景不透明 | true是不透明, false是透明 |
public | void | setPreferredSize(Dimension preferredSize) | – | 设置标签大小 | Dimension(int width, int height) |
public | void | setHorizontalAlignment(int alignment) | – | 设置内容在标签中的水平 对齐方式 |
– |
值(定义在 SwingConstants 类的静态属性)可以为以下的:
CENTER : 居中
LEFT : 左对齐
RIGHT : 右对齐
6. JTextField类
文本域控件类
(1). 常用构造方法
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 |
---|---|---|---|---|
public | – | JTextField() | – | 创建一个长度为0, 且没有初始内容的文本域 |
public | – | JTextField(String text) | – | 创建一个指定内容的文本域, 宽度能刚好显示指定的内容 |
public | – | JTextField(int columns) | – | 创建一个指定宽度, 且没有初始内容的文本域 |
public | – | JTextField(int columns) | – | 创建一个指定宽度, 且指定内容的文本域 |
(2). 常用成员方法
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 | 备注 |
---|---|---|---|---|---|
public | void | setText(String text) | – | 修改文本域的内容 | |
public | String | getText() | – | 获取文本域的内容 | |
public | void | setColumns(int columns) | – | 修改文本域的宽度 | |
public | void | addActionListener(ActionListener l) | – | 给文本域增加监听器 | 当输入时按下回车触发 |
public | void | setToolTipText(String text) | – | 设置当鼠标悬停时显示的文字 | |
public | void | setFont(Font font) | – | 设置文本域内字体的样式 | new Font(String name, int style, int size) |
style : Font.BOLD 粗体, Font.PLAIN 普通, Font.ITALIC 斜体
size: 字体大小
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 | 备注 |
---|---|---|---|---|---|
public | void | getDocument().addDocumentListener(DocumentListener listener) | – | 修改文本域中的内容时触发 |
jTextField.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
// 每输入一个文本触发一次
// 每调用一次setText()触发一次
}
@Override
public void removeUpdate(DocumentEvent e) {
// 每删除一个文本触发一次
}
@Override
public void changedUpdate(DocumentEvent e) {
}
});
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 | 备注 |
---|---|---|---|---|---|
public | synchronized void | addFocusListener(FocusListener l) | – | 选中或不选中文本域时触发 |
jTextField.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
// 选中时触发
}
@Override
public void focusLost(FocusEvent e) {
// 不选中时触发
}
});
7. JCheckBox类
复选框控件类
(1). 常用构造方法
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 |
---|---|---|---|---|
public | – | JCheckBox() | – | 创建没有内容的, 且未被勾选的复选框 |
public | – | JCheckBox (String text) | – | 创建指定内容的, 且未被勾选的复选框 |
(2). 常用成员方法
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 | 备注 |
---|---|---|---|---|---|
public | void | setText(String text) | – | 修改复选框的内容 | – |
public | String | getText() | – | 获取复选框的内容 | – |
public | void | setSelected(boolean b) | – | 设置复选框选中状态 | ture是选中复选框, false是未选中复选框 |
public | void | addActionListener(ActionListener l) | – | 给复选框增加监听器 | 勾选或取消勾选所触发的事件 |
8. JComboBox类
下拉列表框控件
(1). 常用构造方法
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 |
---|---|---|---|---|
public | – | JComboBox() | – | 创建一个带有默认数据模型的下拉列表 |
public | – | JComboBox(E[] items) | – | 创建一个带有指定数组中元素的下拉列表 |
(2). 常用成员方法
访问限定符 | 返回值 | 方法名字 | 抛出的异常 | 说明 | 备注 |
---|---|---|---|---|---|
public | void | addItem(E item) | – | 向下拉列表中添加一个数据项 | – |
public | E | getItemAt(int index) | – | 获取下拉列表中指定位置的数据项 | E是指定的类型 |
public | int | getItemCount() | – | 获取数据项的个数 | – |
public | int | getSelectedIndex() | – | 获取下拉列表中当前选中的数据项的下标 | – |
public | Object | getSelectedItem() | – | 获取下拉列表中当前选中的数据项 | – |
public | void | addActionListener(ActionListener l) | – | 给下拉列表增加监听器 | 选中所触发的事件 |
9. 布局管理器
LayoutManager类
(1). 流式布局
FlowLayout类
当一行显示不下的时候, 自动显示在下一行, 窗体默认的布局
(2). 边界布局
BorderLayout
使用JPanel的add()方法可以指定位置, 以JLabel为例子
中间: add(label, BorderLayout.CENTER);
上面: add(label, BorderLayout.NORTH);
下面: add(label, BorderLayout.SOUTH);
左边: add(label, BorderLayout.EAST);
右面: add(label, BorderLayout.WEST);
通过setPreferredSize()可以设置居上的高度, 居下的高度, 居左的宽度, 居右的宽度
(3). 手工布局
先取消默认的布局器
JPanel的setLayout(null)方法, 参数传入null
使用对应控件的setBounds(Rectangle r)方法实现
参数构造方法
Rectangle(int x, int y, int width, int height)
x,y 表示控件左上角坐标的位置, width是宽度, height是高度
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/122835.html