📜  Java简单GUI-编程示例(1)

📅  最后修改于: 2023-12-03 15:02:06.753000             🧑  作者: Mango

Java简单GUI编程示例

Java GUI编程是Java语言的一个重要方向,GUI即Graphic User Interface,可以理解为图形化用户界面,它可以为Java应用程序提供可视化窗口和菜单等元素,使用户能够通过GUI控件来与程序交互。

本文将介绍Java语言如何使用Swing库实现简单的GUI编程示例。

GUI编程入门

GUI编程的入口就是创建一个JFrame,即可视化窗口。代码如下:

import javax.swing.*;

public class MyFrame extends JFrame {
    public MyFrame() {
        setTitle("Java GUI编程示例");
        setSize(300, 200);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        MyFrame mf = new MyFrame();
        mf.setVisible(true);
    }
}

首先,在代码中导入Swing库,然后创建一个继承自JFrame的类MyFrame,该类可以实现自定义方法。在MyFrame的构造函数中,我们设置了窗口的标题、大小、位置和关闭方式,通过setVisible方法可以让窗口可见。最后,我们在main方法中实例化MyFrame类并将对象设为可见。

运行程序,将会显示出一个标题为“Java GUI编程示例”,大小为300×200的窗口。

image-20210122150715369

Swing控件

Swing库里面提供了大量的组件,如Button、GridBagLayout、JTextField、JPasswordField、JCheckBox、JRadioButton等,这里都不进行详细讲解,下面我们分别介绍几个组件。

JPanel

JPanel可以看做空白的容器,可以容纳其他的控件,用于实现复杂的布局。

import java.awt.Color;
import javax.swing.*;

public class JPanelDemo extends JFrame {
    public JPanelDemo() {
        setTitle("JPanel示例");
        setSize(300, 200);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        JPanel contentPane = new JPanel();
        contentPane.setBackground(Color.white);
        contentPane.setLayout(null);
        JButton btn = new JButton("Click Me");
        btn.setBounds(50, 50, 100, 23);
        contentPane.add(btn);
        setContentPane(contentPane);
    }

    public static void main(String[] args) {
        JPanelDemo jpd = new JPanelDemo();
        jpd.setVisible(true);
    }
}

上述代码创建了一个JPanel,设置它的背景颜色,并添加一个按钮。JPanel并没有布局管理器,因此我们需要手动设置按钮的位置和大小。

image-20210122151303981

JTextField

JTextField用于输入单行文本信息,可以限制输入内容的格式和最大长度。

import javax.swing.*;

public class JTextFieldDemo extends JFrame {
    public JTextFieldDemo() {
        setTitle("JTextField示例");
        setSize(300, 200);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        JPanel contentPane = new JPanel();
        JLabel label = new JLabel("请输入用户名:");
        JTextField tf = new JTextField(10);
        contentPane.add(label);
        contentPane.add(tf);
        setContentPane(contentPane);
    }

    public static void main(String[] args) {
        JTextFieldDemo jtf = new JTextFieldDemo();
        jtf.setVisible(true);
    }
}

上述代码创建了一个JTextField,它可以输入长度为10的文本信息。

image-20210122151458348

JTable

JTable可以展示表格信息,可以通过TableModel接口和自定义的TableModel子类实现表格数据的填充。

import javax.swing.*;
import javax.swing.table.DefaultTableModel;

public class JTableDemo extends JFrame {
    public JTableDemo() {
        setTitle("JTable示例");
        setSize(300, 200);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        JPanel contentPane = new JPanel();
        Object[][] rowData = {{"Tom", 22, "男"}, {"Mary", 25, "女"}};
        Object[] columnNames = {"姓名", "年龄", "性别"};
        DefaultTableModel model = new DefaultTableModel(rowData, columnNames);
        JTable table = new JTable(model);
        JScrollPane scrollPane = new JScrollPane(table);
        contentPane.add(scrollPane);
        setContentPane(contentPane);
    }

    public static void main(String[] args) {
        JTableDemo jtd = new JTableDemo();
        jtd.setVisible(true);
    }
} 

上述代码创建了一个JTable,它展示了一个有两条记录的表格。

image-20210122151656208

总结

Swing库提供了一些常见的GUI组件,可以帮助我们创建易于交互的Java应用程序。我们可以根据需要自定义窗口大小、位置和布局等,来实现更加丰富多彩的GUI应用程序。