Java Swing 是一种用于构建桌面应用程序的图形用户界面(GUI)工具包。它允许开发者使用 Java 语言创建具有丰富用户界面的应用程序。在本篇文章中,我们将通过一系列实战案例,帮助你轻松入门 Java Swing GUI 编程。
1. Swing 简介
Swing 是 Java 的一个扩展库,它提供了比 AWT 更加强大和灵活的界面组件。Swing 是基于 MVC(模型-视图-控制器)模式的,这意味着开发者可以独立地开发用户界面和业务逻辑。
2. 创建第一个 Swing 应用程序
2.1 准备环境
在开始之前,请确保你已经安装了 Java 开发工具包(JDK)。你可以从 Oracle 官网下载并安装 JDK。
2.2 创建项目
在 Integrated Development Environment(IDE)中创建一个新的 Java 项目,例如,在 Eclipse 中创建一个名为 “SwingTutorial” 的新项目。
2.3 编写代码
下面是一个简单的 Swing 应用程序示例,它包含一个按钮,点击按钮后会在控制台输出一条消息。
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class HelloWorld extends JFrame {
public HelloWorld() {
setTitle("Hello World");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button = new JButton("Click Me");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Button clicked!");
}
});
getContentPane().add(button);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new HelloWorld().setVisible(true);
}
});
}
}
2.4 运行程序
运行上述代码,你会看到一个包含按钮的窗口。点击按钮,你会在控制台看到输出消息。
3. Swing 组件介绍
Swing 提供了丰富的组件,包括:
- 标题栏(JMenuBar)
- 菜单(JMenu)
- 子菜单(JMenuItem)
- 按钮(JButton)
- 文本框(JTextField)
- 文本区域(JTextArea)
- 列表框(JList)
- 标签(JLabel)
- 图像(JLabel)
- 单选按钮(JRadioButton)
- 复选框(JCheckBox)
- 分隔符(JSeparator)
这些组件可以组合在一起,创建出丰富的用户界面。
4. 实战案例:制作计算器
在这个实战案例中,我们将创建一个简单的计算器应用程序。
4.1 创建项目
创建一个新的 Java 项目,命名为 “Calculator”。
4.2 编写代码
下面是一个简单的计算器应用程序的代码示例。
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Calculator extends JFrame {
private JTextField display;
private double result;
private String operator;
public Calculator() {
setTitle("Calculator");
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
display = new JTextField();
display.setEditable(false);
add(display, BorderLayout.NORTH);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(4, 4));
String[] buttons = {
"7", "8", "9", "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
"0", ".", "=", "+"
};
for (String text : buttons) {
JButton button = new JButton(text);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String input = e.getActionCommand();
if (input.equals("=")) {
calculate();
} else if (input.equals("+") || input.equals("-") || input.equals("*") || input.equals("/")) {
operator = input;
result = Double.parseDouble(display.getText());
} else {
display.setText(display.getText() + input);
}
}
});
panel.add(button);
}
add(panel, BorderLayout.CENTER);
}
private void calculate() {
double num = Double.parseDouble(display.getText());
switch (operator) {
case "+":
result += num;
break;
case "-":
result -= num;
break;
case "*":
result *= num;
break;
case "/":
result /= num;
break;
}
display.setText(String.valueOf(result));
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Calculator().setVisible(true);
}
});
}
}
4.3 运行程序
运行上述代码,你会看到一个计算器应用程序。你可以使用它进行基本的数学运算。
5. 总结
通过本文的介绍,相信你已经对 Java Swing GUI 编程有了初步的了解。Swing 提供了丰富的组件和功能,可以帮助你创建出丰富的用户界面。通过实战案例的学习,你可以将 Swing 应用于你的项目中,开发出更多有趣的应用程序。