📅  最后修改于: 2023-12-03 15:02:06.753000             🧑  作者: Mango
Java GUI编程是Java语言的一个重要方向,GUI即Graphic User Interface,可以理解为图形化用户界面,它可以为Java应用程序提供可视化窗口和菜单等元素,使用户能够通过GUI控件来与程序交互。
本文将介绍Java语言如何使用Swing库实现简单的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的窗口。
Swing库里面提供了大量的组件,如Button、GridBagLayout、JTextField、JPasswordField、JCheckBox、JRadioButton等,这里都不进行详细讲解,下面我们分别介绍几个组件。
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并没有布局管理器,因此我们需要手动设置按钮的位置和大小。
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的文本信息。
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,它展示了一个有两条记录的表格。
Swing库提供了一些常见的GUI组件,可以帮助我们创建易于交互的Java应用程序。我们可以根据需要自定义窗口大小、位置和布局等,来实现更加丰富多彩的GUI应用程序。