TutorialsPoint Swing 示例教程

来源：https://www.yiibai.com/swingexamples/

Swing示例程序

原文：https://www.yiibai.com/swingexamples

这是最实用的JAVA Swing示例代码。 JAVA提供了一组丰富的库，以独立于平台的方式创建图形用户界面。 这些例子对在开发项目，论文和学习非常有用。

读者

此Swing示例代码是专为学习JAVA GUI编程的软件专业人员而设计。

提前条件

在开始学习本教程之前，我们假设您对Java编程有基本的了解。 如果您不熟悉这些概念，建议您首先阅读Java编程教程，以了解本教程中提到的主题。

问题反馈

我们不能保证您在学习此Swing示例教程的过程中不会遇到任何问题。本教程中的讲解，示例和代码等只是根据作者的理解来概括写出。由于作者水平和能力有限，因此不保正所有编写的文章都准确无误。但是如果有遇到任何错误或问题，请反馈给我们，我们会及时纠正以方便后续读者阅读。

Swing示例代码目录

1. Swing边框示例

学习如何在Swing UI编程中使用边框(Border)。以下是最常用的示例 -

如何在Java Swing应用程序中使用边框？

如何在Swing中为Panel添加边框？

如何在Swing中为Java Label添加边框？

如何在Swing中为JPanel边框添加标题？

2. Swing按钮示例

在本小节中将了解如何在Swing UI编程中使用按钮。以下是最常用的示例 -

如何在Swing中创建和使用按钮？

如何在Swing中创建HTML按钮？

如何在Swing中创建带有图标和文本的按钮？

如何在Swing中修改按钮的默认外观？

如何在Swing中创建一个切换按钮？

如何在工具栏按钮中添加分隔符？

3. Swing复选框示例

了解如何在Swing UI编程中使用复选框(CheckBoxe)。以下是最常用的示例 -

如何在Java Swing应用程序中创建和使用复选框？

如何在Java Swing应用程序中创建和使用单选按钮？

如何在Java Swing应用程序中创建单选按钮组？

4. Swing组合框（Combobox）示例

下面将了解如何在Swing UI编程中使用组合框(Comboboxe)。 以下是最常用的示例 -

如何在Java Swing应用程序中使用组合框？

如何在swing中的组合框中添加分隔符？

5. Swing颜色选择器示例

在本小节将了解如何在Swing UI编程中使用颜色选择器(Color Chooser)。以下是最常用的示例 -

如何在Swing中创建和使用颜色选择器？

如何在Swing中的对话框中创建颜色选择器？

如何定制Java Swing的标准颜色选择器？

如何在Java Swing中删除/替换颜色选择器的预览面板？

6. Swing对话框示例

了解如何在Swing UI编程中使用Dialogs。以下是最常用的对话框示例 -

如何在Swing中使用确定按钮显示消息提示？

如何在Swing中显示警告消息对话框？

如何在Swing中显示错误消息对话框？

如何在Swing中显示没有图标的消息对话框？

如何在Swing中显示带有自定义图标的消息对话框？

如何在Swing中显示带有是/否和取消选项的确认对话框？

如何在Swing中显示是/否选项的确认对话框？

如何在Swing按钮上显示自定义文本的确认对话框？

如何从Swing输入对话框中的列表中获取用户输入？

如何从Swing输入对话框中的文本框中获取用户输入？

如何在Swing中创建模态对话框？

如何在Swing中创建非模态对话框？

7. Swing编辑器窗格示例

了解如何在Swing UI编程中使用编辑器窗格(EditorPane)。 以下是最常用的示例 -

如何读取URL以在Swing中显示其页面？

如何使用JEditorPane在Swing中显示HTML页面？

8. Swing文件选择器示例

在本小节中将了解如何在Swing UI编程中使用文件选择器。以下是最常用的示例 -

如何在Swing中显示打开的文件对话框？

如何在Swing中显示一个打开文件对话框来选择多个文件？

如何在Swing中显示文件选择器以只选择的图像？

如何在Swing中显示文件选择器只选择目录？

如何在Swing中显示文件选择器以选择文件和目录？

如何在Swing中显示保存文件对话框？

9. Swing格式化文本域

了解如何在Swing UI编程中使用格式化文本域(Formatted TextField)。以下是最常用的示例 -

如何在Swing中创建蒙版文本框？

如何在Swing中使用格式化文本框？

如何在Swing的文本框中使用百分比格式？

如何在Swing的文本框中使用货币格式？

如何在Swing中的文本框中使用日期格式？

10. Swing框架和窗口示例

了解如何在Swing GUI编程中使用框架(frame)和窗口(window)。 以下是最常用的示例 -

如何在Swing中创建标准窗口？

如何改变Swing窗口的外观？

如何将Swing窗口的外观设置为当前系统？

如何更改Swing窗口的默认图标？

如何回应Swing窗口的窗口事件？

11. Swing列表框示例

了解如何在Swing UI编程中使用列表。 以下是最常用的示例 -

如何在Swing应用程序中使用列表框？

如何在swing中创建单区间列表框？

如何在swing中创建一个多区间选择列表框？

如何在swing中的列表框中添加分隔符？

12. Swing布局示例

了解如何在Swing UI编程中使用布局(Layout)。以下是最常用的示例 -

Swing的BoxLayout示例。

Swing的GridLayout示例。

Swing的FlowLayout示例。

Swing的BorderLayout示例。

Swing的GridBagLayout示例。

Swing的CardLayout示例。

Swing的GroupLayout示例。

Swing的SpringLayout示例。

Swing拆分水平分割的分割窗格示例。

Swing拆分垂直分割的分割窗格示例。

Swing的标签窗格示例。

如何在Swing中显示带有图标选项卡的选项卡式窗口？

13. Swing菜单示例

了解如何在Swing UI编程中使用菜单，以下是一些常用的示例 -

如何在Swing中创建菜单栏和菜单项？

如何在Swing中添加快捷键到菜单项？

如何在Swing中创建弹出菜单项？

如何在Swing菜单中添加分隔符？

14. Swing密码字段示例

了解如何在Swing UI编程中使用TextFields和PasswordFields。 以下是常用的示例 -

如何在Swing中创建和使用密码字段？

如何在Swing中创建和使用文本字段？

如何在Swing中更改密码字段的回显字符？

15. Swing进度条示例

了解如何在Swing UI编程中使用进度条(Progress Bar)。以下是常用的示例 -

如何在Swing中显示标准进度条？

如何在Swing中显示不确定的进度条？

如何在Swing中使用ProgressMonitor？

16. Swing滚动窗格示例

了解如何在Swing UI编程中使用滚动窗格(ScrollPane)。 以下是最常用的示例 -

如何在Swing中创建和使用滚动窗格？

如何在Swing中添加垂直滚动条？

如何在Swing应用程序中添加水平滚动条？

17. Swing滑块示例

了解如何在Swing UI编程中使用滑块。以下是最常用的示例 -

如何在Swing中创建水平滑块？

如何在Swing中创建垂直滑块？

如何在Swing中创建带自定义标签的滑块？

18. Swing表格示例

了解如何在Swing UI编程中使用表格。 以下是最常用的示例 -

如何在Swing中创建表格？

如何在Swing中为表的每个标题添加排序功能？

19. Swing工具栏示例

了解如何在Swing UI编程中使用工具栏。以下是最常用的示例 -

如何在Swing中创建带按钮的工具栏？

如何在Swing中创建不可移动的工具栏？

易百教程移动端：请扫描本页面底部(右侧)二维码并关注微信公众号，回复："教程" 选择相关教程阅读或直接访问：http://m.yiibai.com 。

Swing边框示例

原文：https://www.yiibai.com/swingexamples/swingexamples_borders.html

学习如何在Swing UI编程中使用边框(Border)。以下是最常用的示例 -

如何在Java Swing应用程序中使用边框？

如何在Swing中为Panel添加边框？

如何在Swing中为Java Label添加边框？

如何在Swing中为JPanel边框添加标题？

Swing按钮示例

原文：https://www.yiibai.com/swingexamples/swingexamples_buttons.html

在本小节中将了解如何在Swing UI编程中使用按钮。以下是最常用的示例 -

如何在Swing中创建和使用按钮？

如何在Swing中创建HTML按钮？

如何在Swing中创建带有图标和文本的按钮？

如何在Swing中修改按钮的默认外观？

如何在Swing中创建一个切换按钮？

如何在工具栏按钮中添加分隔符？

Swing复选框示例

原文：https://www.yiibai.com/swingexamples/swingexamples_checkboxes.html

了解如何在Swing UI编程中使用复选框(CheckBoxe)。以下是最常用的示例 -

如何在Java Swing应用程序中创建和使用复选框？

如何在Java Swing应用程序中创建和使用单选按钮？

如何在Java Swing应用程序中创建单选按钮组？

Swing组合框（Combobox）示例

原文：https://www.yiibai.com/swingexamples/swingexamples_comboboxes.html

下面将了解如何在Swing UI编程中使用组合框(Comboboxe)。 以下是最常用的示例 -

如何在Java Swing应用程序中使用组合框？

如何在swing中的组合框中添加分隔符？

Swing颜色选择器示例

原文：https://www.yiibai.com/swingexamples/swingexamples_colorchoosers.html

在本小节将了解如何在Swing UI编程中使用颜色选择器(Color Chooser)。以下是最常用的示例 -

如何在Swing中创建和使用颜色选择器？

如何在Swing中的对话框中创建颜色选择器？

如何定制Java Swing的标准颜色选择器？

如何在Java Swing中删除/替换颜色选择器的预览面板？

Swing对话框示例

原文：https://www.yiibai.com/swingexamples/swingexamples_dialogs.html

了解如何在Swing UI编程中使用Dialogs。以下是最常用的对话框示例 -

如何在Swing中使用确定按钮显示消息提示？

如何在Swing中显示警告消息对话框？

如何在Swing中显示错误消息对话框？

如何在Swing中显示没有图标的消息对话框？

如何在Swing中显示带有自定义图标的消息对话框？

如何在Swing中显示带有是/否和取消选项的确认对话框？

如何在Swing中显示是/否选项的确认对话框？

如何在Swing按钮上显示自定义文本的确认对话框？

如何从Swing输入对话框中的列表中获取用户输入？

如何从Swing输入对话框中的文本框中获取用户输入？

如何在Swing中创建模态对话框？

如何在Swing中创建非模态对话框？

Swing编辑器窗格示例

原文：https://www.yiibai.com/swingexamples/swingexamples_editorpanes.html

了解如何在Swing UI编程中使用编辑器窗格(EditorPane)。 以下是最常用的示例 -

如何读取URL以在Swing中显示其页面？

如何使用JEditorPane在Swing中显示HTML页面？

Swing文件选择器示例

原文：https://www.yiibai.com/swingexamples/swingexamples_filechoosers.html

在本小节中将了解如何在Swing UI编程中使用文件选择器。以下是最常用的示例 -

如何在Swing中显示打开的文件对话框？

如何在Swing中显示一个打开文件对话框来选择多个文件？

如何在Swing中显示文件选择器以只选择的图像？

如何在Swing中显示文件选择器只选择目录？

如何在Swing中显示文件选择器以选择文件和目录？

如何在Swing中显示保存文件对话框？

Swing格式化文本域

原文：https://www.yiibai.com/swingexamples/swingexamples_formatted_textfields.html

了解如何在Swing UI编程中使用格式化文本域(Formatted TextField)。以下是最常用的示例 -

如何在Swing中创建蒙版文本框？

如何在Swing中使用格式化文本框？

如何在Swing的文本框中使用百分比格式？

如何在Swing的文本框中使用货币格式？

如何在Swing中的文本框中使用日期格式？

Swing框架和窗口示例

原文：https://www.yiibai.com/swingexamples/swingexamples_frames.html

了解如何在Swing GUI编程中使用框架(frame)和窗口(window)。 以下是最常用的示例 -

如何在Swing中创建标准窗口？

如何改变Swing窗口的外观？

如何将Swing窗口的外观设置为当前系统？

如何更改Swing窗口的默认图标？

如何回应Swing窗口的窗口事件？

Swing列表框示例

原文：https://www.yiibai.com/swingexamples/swingexamples_lists.html

了解如何在Swing UI编程中使用列表。 以下是最常用的示例 -

如何在Swing应用程序中使用列表框？

如何在swing中创建单区间列表框？

如何在swing中创建一个多区间选择列表框？

如何在swing中的列表框中添加分隔符？

Swing布局示例

原文：https://www.yiibai.com/swingexamples/swingexamples_layouts.html

了解如何在Swing UI编程中使用布局(Layout)。以下是最常用的示例 -

Swing的BoxLayout示例。

Swing的GridLayout示例。

Swing的FlowLayout示例。

Swing的BorderLayout示例。

Swing的GridBagLayout示例。

Swing的CardLayout示例。

Swing的GroupLayout示例。

Swing的SpringLayout示例。

Swing拆分水平分割的分割窗格示例。

Swing拆分垂直分割的分割窗格示例。

Swing的标签窗格示例。

如何在Swing中显示带有图标选项卡的选项卡式窗口？

Swing菜单示例

原文：https://www.yiibai.com/swingexamples/swingexamples_menus.html

了解如何在Swing UI编程中使用菜单，以下是一些常用的示例 -

如何在Swing中创建菜单栏和菜单项？

如何在Swing中添加快捷键到菜单项？

如何在Swing中创建弹出菜单项？

如何在Swing菜单中添加分隔符？

Swing密码字段示例

原文：https://www.yiibai.com/swingexamples/swingexamples_password_fields.html

了解如何在Swing UI编程中使用TextFields和PasswordFields。 以下是常用的示例 -

如何在Swing中创建和使用密码字段？

如何在Swing中创建和使用文本字段？

如何在Swing中更改密码字段的回显字符？

Swing进度条示例

原文：https://www.yiibai.com/swingexamples/swingexamples_progress_bars.html

了解如何在Swing UI编程中使用进度条(Progress Bar)。以下是常用的示例 -

如何在Swing中显示标准进度条？

如何在Swing中显示不确定的进度条？

如何在Swing中使用ProgressMonitor？

Swing滚动窗格示例

原文：https://www.yiibai.com/swingexamples/swingexamples_scroll_panes.html

了解如何在Swing UI编程中使用滚动窗格(ScrollPane)。 以下是最常用的示例 -

如何在Swing中创建和使用滚动窗格？

如何在Swing中添加垂直滚动条？

如何在Swing应用程序中添加水平滚动条？

Swing滑块示例

原文：https://www.yiibai.com/swingexamples/swingexamples_sliders.html

了解如何在Swing UI编程中使用滑块。以下是最常用的示例 -

如何在Swing中创建水平滑块？

如何在Swing中创建垂直滑块？

如何在Swing中创建带自定义标签的滑块？

Swing微调器示例

原文：https://www.yiibai.com/swingexamples/create_spinner.html

下面的示例展示了如何在Java Swing应用程序中创建微调器。

使用以下API。

JSpinner() - 创建一个微调器。

JSpinner.getValue() - 获取微调器的当前值。

示例

package com.yiibai.swingdemo;

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

public class SwingTester {
    private JFrame mainFrame;
    private JLabel headerLabel;
    private JLabel statusLabel;
    private JPanel controlPanel;

    public SwingTester() {
        prepareGUI();
    }

    public static void main(String[] args) {
        SwingTester swingControlDemo = new SwingTester();
        swingControlDemo.showSpinnerDemo();
    }

    private void prepareGUI() {
        mainFrame = new JFrame("Swing微调器示例");
        mainFrame.setSize(400, 400);
        mainFrame.setLayout(new GridLayout(3, 1));

        mainFrame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent windowEvent) {
                System.exit(0);
            }
        });
        headerLabel = new JLabel("", JLabel.CENTER);
        statusLabel = new JLabel("", JLabel.CENTER);
        statusLabel.setSize(350, 100);

        controlPanel = new JPanel();
        controlPanel.setLayout(new FlowLayout());

        mainFrame.add(headerLabel);
        mainFrame.add(controlPanel);
        mainFrame.add(statusLabel);
        mainFrame.setVisible(true);
    }

    private void showSpinnerDemo() {
        headerLabel.setText("Control in action: JSpinner");
        SpinnerModel spinnerModel = new SpinnerNumberModel(10, // initial value
                0, // min
                100, // max
                1);// step
        JSpinner spinner = new JSpinner(spinnerModel);
        spinner.addChangeListener(new ChangeListener() {
            public void stateChanged(ChangeEvent e) {
                statusLabel.setText("当前值 : " + ((JSpinner) e.getSource()).getValue());
            }
        });
        controlPanel.add(spinner);
        mainFrame.setVisible(true);
    }
}

执行上面示例代码，得到以下结果：

Swing表格示例

原文：https://www.yiibai.com/swingexamples/swingexamples_tables.html

了解如何在Swing UI编程中使用表格。 以下是最常用的示例 -

如何在Swing中创建表格？

如何在Swing中为表的每个标题添加排序功能？

Swing工具栏示例

原文：https://www.yiibai.com/swingexamples/swingexamples_toolbars.html

了解如何在Swing UI编程中使用工具栏。以下是最常用的示例 -

如何在Swing中创建带按钮的工具栏？

如何在Swing中创建不可移动的工具栏？

Swing创建树示例

原文：https://www.yiibai.com/swingexamples/create_tree.html

以下示例展示了如何在Java Swing应用程序中创建树。

使用以下API -

JTree(root)- 创建树。

DefaultMutableTreeNode() - 创建树节点。

DefaultMutableTreeNode().add(node) - 将树节点添加到树节点。

示例

package com.yiibai.swingdemo;

import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;

public class SwingTester {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;

   public SwingTester(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingTester swingControlDemo = new SwingTester();
      swingControlDemo.showTableDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Swing创建树示例(yiibai.com)");
      mainFrame.setSize(500,600);
      mainFrame.setLayout(new GridLayout(3, 1));

      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }
      });
      headerLabel = new JLabel("", JLabel.CENTER);
      statusLabel = new JLabel("",JLabel.CENTER);
      statusLabel.setSize(350,200);

      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);
   }
   private void showTableDemo(){
      headerLabel.setText("Control in action: JTree");
      // Create a root tree item as department
      DefaultMutableTreeNode department = new DefaultMutableTreeNode("部门管理");

      //create other tree items as department names
      DefaultMutableTreeNode salesDepartment = new DefaultMutableTreeNode("销售部");
      DefaultMutableTreeNode marketingDepartment = new DefaultMutableTreeNode("市场部");
      DefaultMutableTreeNode manufacturingDepartment = new DefaultMutableTreeNode("制造部");

      //create other tree items as employees
      DefaultMutableTreeNode employee1 = new DefaultMutableTreeNode("张三");
      DefaultMutableTreeNode employee2 = new DefaultMutableTreeNode("李车车");
      DefaultMutableTreeNode employee3 = new DefaultMutableTreeNode("王小达");

      //add employees to sales department
      salesDepartment.add(employee1);
      salesDepartment.add(employee2);
      salesDepartment.add(employee3);

      //create other tree items as employees
      DefaultMutableTreeNode employee4 = new DefaultMutableTreeNode("马花花");
      DefaultMutableTreeNode employee5 = new DefaultMutableTreeNode("黄小木");

      //add employees to marketing department
      marketingDepartment.add(employee4);
      marketingDepartment.add(employee5);

      //create other tree items as employees
      DefaultMutableTreeNode employee6 = new DefaultMutableTreeNode("周琳");
      DefaultMutableTreeNode employee7 = new DefaultMutableTreeNode("易周");

      //add employees to sales department
      manufacturingDepartment.add(employee6);
      manufacturingDepartment.add(employee7);

      //add departments to department item
      department.add(salesDepartment);
      department.add(marketingDepartment);
      department.add(manufacturingDepartment);

      //create the tree with department as root node
      JTree tree = new JTree(department);
      JScrollPane treeView = new JScrollPane(tree);
      controlPanel.add(treeView);

      mainFrame.setVisible(true);
   }
}

执行上面示例代码，得到以下结果：