图形用户界面GUI编程:Swing JFrame窗体 、弹窗、标签 、面板 、按钮、列表、文本框、密码框、文本域

109 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 6 天,点击查看活动详情  GUI编程学习笔记,根据目录食用~

1、JFrame窗体

JFrame窗口关闭:jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

跟Frame差不多,基础例子:

image.png

文本标签位置,例如居中,方法: 法一:

JLabel label = new JLabel("hello jlabel", SwingConstants.CENTER);

法二:

 JLabel label = new JLabel("hello jlabel";
 label.setHorizontalAlignment(SwingConstants.CENTER);

2、JDialog弹窗

// 主窗口
public class DialogDemo extends JFrame {
    public DialogDemo() {
        this.setVisible(true);
        this.setSize(700, 500);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        // JFrame放东西,容器
        Container container = this.getContentPane();
        // 绝对布局
        container.setLayout(null);
        // 按钮
        JButton button = new JButton("点击弹出一个对话框");
        button.setBounds(30, 30, 200, 50);

        // 点击按钮弹出一个弹窗(监听事件)
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                new MyDialogDemo();
            }
        });

        container.add(button);
    }


    public static void main(String[] args) {
        new DialogDemo();
    }

}

// 弹窗的窗口
class MyDialogDemo extends JDialog {
    public MyDialogDemo() {
        this.setVisible(true);
        this.setBounds(100, 100, 500, 500);
        // 这里重复了,会报错(弹窗是绝对布局)
	    // this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);  

        Container container = this.getContentPane();
        container.setLayout(null);

        container.add(new Label("java。。。。。"));
    }
}

image.png

3、Icon、ImageIcon标签

Icon标签

image.png

ImageIcon标签 image.png

4、面板

image.png

文本域面板(可滚动)

        Container container = this.getContentPane();

        // 文本域
        JTextArea jTextArea = new JTextArea(20, 50);
        jTextArea.setText("hello 欢迎回来");

        // Scroll面板
        JScrollPane scrollPane = new JScrollPane(jTextArea);
        container.add(scrollPane);

image.png

5、按钮

图片按钮

		Container container = this.getContentPane();
		
		// 将一个图片编程图标
		URL url = JButtonDemo.class.getResource("./6.png");// 获取图片地址
		ImageIcon icon = new ImageIcon(url);
		
		// 将该图标放在按钮上
		JButton button = new JButton();
		button.setIcon(icon);
		button.setToolTipText("图片按钮");

单选按钮 JRadioButton

        // 单选框
        JRadioButton jRadioButton1 = new JRadioButton("JRadioButton1");
        JRadioButton jRadioButton2= new JRadioButton("JRadioButton2");
        JRadioButton jRadioButton3 = new JRadioButton("JRadioButton3");

        // 单选框只能选一个,分组,,一个组中只能选一个
        ButtonGroup buttonGroup = new ButtonGroup();
        buttonGroup.add(jRadioButton1);
        buttonGroup.add(jRadioButton2);
        buttonGroup.add(jRadioButton3);

        container.add(jRadioButton1, BorderLayout.NORTH);
        container.add(jRadioButton2, BorderLayout.CENTER);
        container.add(jRadioButton3, BorderLayout.SOUTH);

image.png

复选按钮 JCheckBox

        // 多选框
        JCheckBox checkbox1 = new JCheckBox("checkbox1");
        JCheckBox checkbox2 = new JCheckBox("checkbox2");

        container.add(checkbox1, BorderLayout.NORTH);
        container.add(checkbox2, BorderLayout.SOUTH);

image.png

6、下拉框 JComboBox

        JComboBox jComboBox = new JComboBox();
        jComboBox.addItem(null);
        jComboBox.addItem("男");
        jComboBox.addItem("女");

image.png

7、列表框 JList

列表框一般用于展示信息,动态扩容

内容静态初始化

        Container container = this.getContentPane();

        // 生成列表的内容,静态初始化
        String[] contents = {"苹果", "香蕉", "西瓜"};
        // 列表中需要放入内容
        JList jList = new JList(contents);

        container.add(jList);

内容动态初始化

        Container container = this.getContentPane();

        Vector contents = new Vector();	
        contents.add("香蕉");
        contents.add("西瓜");
        contents.add("苹果");
		
		JList jList = new JList(contents);
		container.add(jList);

8、文本框 JTextField

    Container container = this.getContentPane();

    JTextField jTextField1 = new JTextField("hello 你好");
    JTextField jTextField2 = new JTextField("world 世界",20);

    container.add(jTextField1,BorderLayout.NORTH);
    container.add(jTextField2,BorderLayout.SOUTH);

image.png

9、密码框 JPasswordField

        Container container = this.getContentPane();

        JPasswordField jPasswordField = new JPasswordField();
        jPasswordField.setEchoChar('*');

        container.add(jPasswordField);

监听事件:

jPasswordField.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println(jPasswordField.getPassword());
            }
        });

10、文本域 JTextArea

        JTextArea jTextArea = new JTextArea(20, 50);
        jTextArea.setText("hello 欢迎回来");