软构笔记-Java Swing学习
Java Swing 教程
Java Swing 是 Java 平台的一个 GUI 工具包,提供了各种组件和工具类,用于创建漂亮的用户界面。
安装 Java Swing
Java Swing 是 Java 标准库的一部分,因此无需安装额外的软件包。只需要安装 Java 开发工具包(JDK),就可以开始使用 Java Swing 开发 GUI 应用程序了。
创建 GUI 应用程序
要创建 GUI 应用程序,需要创建一个 JFrame 对象,并将其设置为应用程序的主窗口。然后,可以向 JFrame 对象中添加其他组件,如 JButton、JLabel、JTextField 等。
下面是一个简单的 Java Swing 应用程序的示例代码:
import javax.swing.*;
public class HelloWorldSwing {
private static void createAndShowGUI() {
// 创建 JFrame 对象
JFrame frame = new JFrame("HelloWorldSwing");
// 设置关闭窗口时的操作
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 添加 "Hello, world!" 标签
JLabel label = new JLabel("Hello, world!");
frame.getContentPane().add(label);
// 显示窗口
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
// 在 EDT 中运行 GUI 代码
SwingUtilities.invokeLater(() -> createAndShowGUI());
}
}
在上面的示例代码中,我们首先创建了一个 JFrame 对象,并设置了窗口的标题和关闭窗口时的操作。然后,我们创建了一个 JLabel 对象,并将其添加到 JFrame 对象的内容面板中。最后,我们调用 pack() 方法调整窗口大小,并将窗口设置为可见。
布局组件
Java Swing 提供了几种布局管理器,用于将组件布局在容器中。常见的布局管理器包括 BorderLayout、FlowLayout、GridLayout、BoxLayout 等。可以根据需要选择适合的布局管理器。
下面是一个使用 BorderLayout 布局管理器的示例代码:
import javax.swing.*;
public class BorderLayoutExample {
private static void createAndShowGUI() {
// 创建 JFrame 对象
JFrame frame = new JFrame("BorderLayoutExample");
// 设置关闭窗口时的操作
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 添加组件
frame.add(new JButton("North"), BorderLayout.NORTH);
frame.add(new JButton("South"), BorderLayout.SOUTH);
frame.add(new JButton("East"), BorderLayout.EAST);
frame.add(new JButton("West"), BorderLayout.WEST);
frame.add(new JButton("Center"), BorderLayout.CENTER);
// 显示窗口
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
// 在 EDT 中运行 GUI 代码
SwingUtilities.invokeLater(() -> createAndShowGUI());
}
}
在上面的示例代码中,我们创建了一个 JFrame 对象,并向其中添加了五个 JButton 对象。
这些 JButton 对象被添加到 JFrame 对象的五个不同位置(北、南、东、西、中心),使用 BorderLayout 布局管理器进行布局。
响应用户操作
Java Swing 提供了多种事件处理机制,可以响应用户操作,例如单击按钮、输入文本等。可以通过添加事件监听器来处理这些事件。
下面是一个使用 ActionListener 处理按钮单击事件的示例代码:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ButtonExample {
private static void createAndShowGUI() {
// 创建 JFrame 对象
JFrame frame = new JFrame("ButtonExample");
// 设置关闭窗口时的操作
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 添加按钮
JButton button = new JButton("Click me!");
frame.getContentPane().add(button);
// 添加事件监听器
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(frame, "Hello, world!");
}
});
// 显示窗口
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
// 在 EDT 中运行 GUI 代码
SwingUtilities.invokeLater(() -> createAndShowGUI());
}
}
在上面的示例代码中,我们创建了一个 JButton 对象,并添加了一个 ActionListener,当用户单击按钮时,会弹出一个对话框,显示 "Hello, world!"。
总结
Java Swing 是一个强大的 GUI 工具包,提供了丰富的组件和工具类,用于创建漂亮的用户界面。介绍了 Java Swing 的基础知识,包括如何创建和布局组件、如何响应用户操作、如何处理事件等。