Java图形化界面学习

书读的越多而不加思考,你就会觉得你知道得很多;而当你读书而思考得越多的时候,你就会越清楚地看到,你知道得很少。

导读:本篇文章讲解 Java图形化界面学习,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!