Java Swing 教程:如何在 Java 中创建 GUI 应用程序
什么是 Java 中的 Swing?
Java 中的 Swing 是一个包含 GUI 组件的图形用户界面 (GUI) 工具包。 Swing 提供了一组丰富的小部件和包来为 Java 应用程序制作复杂的 GUI 组件。 Swing 是 Java Foundation Classes(JFC) 的一部分,JFC 是一个提供 GUI 的 Java GUI 编程 API。
Java Swing 库构建在 Java Abstract Widget Toolkit (AWT ),一个较旧的、平台相关的 GUI 工具包。您可以使用库中的 Java 简单 GUI 编程组件,如按钮、文本框等,而不必从头开始创建组件。
在本 Java Swing 教程中,您将学习 Java GUI 基础知识,例如-
- 什么是 Java 中的 Swing?
- 什么是容器类?
- 什么是 Java 中的 GUI?
- 如何通过示例在 Java 中制作 GUI
- Java 布局管理器
- Java 边框布局
- Java 流布局
- Java GridBagLayout
Java Swing 类层次图
<中心>
<图> 图>
Java Swing中的所有组件都是JComponent,可以添加到容器类中。
什么是容器类?
容器类是可以在其上具有其他组件的类。因此,要创建 Java Swing GUI,我们至少需要一个容器对象。 Java Swing 容器有 3 种类型。
- 面板 :它是一个纯粹的容器,本身不是一个窗口。面板的唯一目的是将组件组织到一个窗口中。
- 框架 :这是一个功能齐全的窗口,带有标题和图标。
- 对话框 :可以认为是一个弹出窗口,当必须显示消息时弹出。它不像 Frame 那样功能齐全的窗口。
什么是 Java 中的 GUI?
Java 中的 GUI(图形用户界面) 是一个易于使用的 Java 应用程序视觉体验构建器。它主要由按钮、标签、窗口等图形组件组成,用户可以通过这些组件与应用程序进行交互。 GUI 在为 Java 应用程序构建简单的界面方面发挥着重要作用。
如何通过示例在 Java 中制作 GUI
现在在这个 Java GUI 教程中,让我们了解如何使用 Java 示例中的 Swings 在 Java 中创建 GUI。
步骤 1) 将代码复制到编辑器中
第一步将以下代码复制到编辑器中。
import javax.swing.*; class gui{ public static void main(String args[]){ JFrame frame = new JFrame("My First GUI"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300,300); JButton button = new JButton("Press"); frame.getContentPane().add(button); // Adds Button to content pane of frame frame.setVisible(true); } }
步骤 2) 运行代码
下一步,保存、编译、运行代码
步骤 3) 将以下代码复制到编辑器中
现在让我们在框架中添加一个按钮。将以下代码从给定的 Java UI 示例复制到编辑器中
import javax.swing.*; class gui{ public static void main(String args[]){ JFrame frame = new JFrame("My First GUI"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300,300); JButton button1 = new JButton("Press"); frame.getContentPane().add(button1); frame.setVisible(true); } }
第 4 步) 执行代码
接下来,执行代码。你会得到一个大按钮。
第 5 步) 添加两个按钮
添加两个按钮怎么样?将以下代码复制到编辑器中。
import javax.swing.*; class gui{ public static void main(String args[]){ JFrame frame = new JFrame("My First GUI"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300,300); JButton button1 = new JButton("Button 1"); JButton button2 = new JButton("Button 2"); frame.getContentPane().add(button1); frame.getContentPane().add(button2); frame.setVisible(true); } }
第 6 步) 保存并运行程序
接下来,保存、编译、运行程序。
第 7 步) 检查输出
意外输出=?按钮重叠了。
Java 布局管理器
布局管理器用于布局(或排列)容器内的 GUI Java 组件。布局管理器有很多,但最常用的是-
Java 边框布局
一个BorderLayout
最多可将组件放置在五个区域中:顶部、底部、左侧、右侧和中心。它是每个 java JFrame 的默认布局管理器
<中心>
<图> 图>
Java 流布局
FlowLayout
是每个 JPanel
的默认布局管理器 .它只是将组件一个接一个地排列在一行中。
<中心>
<图> 图>
Java GridBagLayout
它是所有布局中更复杂的。它通过将组件放置在单元格网格中来对齐组件,从而允许组件跨越多个单元格。
<中心>
<图> 图>
第 8 步) 创建聊天框
像下面这样创建一个聊天框怎么样?
在查看下面的程序之前尝试自己编写代码。
//Usually you will require both swing and awt packages // even if you are working with just swings. import javax.swing.*; import java.awt.*; class gui { public static void main(String args[]) { //Creating the Frame JFrame frame = new JFrame("Chat Frame"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 400); //Creating the MenuBar and adding components JMenuBar mb = new JMenuBar(); JMenu m1 = new JMenu("FILE"); JMenu m2 = new JMenu("Help"); mb.add(m1); mb.add(m2); JMenuItem m11 = new JMenuItem("Open"); JMenuItem m22 = new JMenuItem("Save as"); m1.add(m11); m1.add(m22); //Creating the panel at bottom and adding components JPanel panel = new JPanel(); // the panel is not visible in output JLabel label = new JLabel("Enter Text"); JTextField tf = new JTextField(10); // accepts upto 10 characters JButton send = new JButton("Send"); JButton reset = new JButton("Reset"); panel.add(label); // Components Added using Flow Layout panel.add(tf); panel.add(send); panel.add(reset); // Text Area at the Center JTextArea ta = new JTextArea(); //Adding Components to the frame. frame.getContentPane().add(BorderLayout.SOUTH, panel); frame.getContentPane().add(BorderLayout.NORTH, mb); frame.getContentPane().add(BorderLayout.CENTER, ta); frame.setVisible(true); } }
java