📜  Java Swing – 带有示例的 JPanel(1)

📅  最后修改于: 2023-12-03 15:31:32.224000             🧑  作者: Mango

Java Swing – 带有示例的 JPanel

简介

Swing 是一个用于创建图形用户界面 (GUI) 的 Java 库。JPanel 是 Swing 中用于容纳其他 GUI 元素的基本容器类之一。本文将介绍如何创建一个带有示例的 JPanel,并且展示一些基本的 Swing GUI 元素。

创建 JPanel
import javax.swing.*;

public class MainPanel extends JPanel {
    public MainPanel() {
        // 添加 Swing GUI 元素
    }
}

以上是一个最基本的 JPanel 类。我们可以在其中添加任意数量的 Swing GUI 元素,例如按钮、标签、文本框等等。下面将展示如何添加一些常见的 Swing GUI 元素。

添加按钮
import java.awt.*;
import javax.swing.*;

public class MainPanel extends JPanel {
    public MainPanel() {
        JButton button = new JButton("点击我");
        add(button);
    }
}

以上代码创建了一个简单的按钮,并将其添加到了 JPanel 中。我们可以通过按钮的 addActionListener 方法来为其添加点击事件的监听器。

添加标签
import java.awt.*;
import javax.swing.*;

public class MainPanel extends JPanel {
    public MainPanel() {
        JLabel label = new JLabel("这是一个标签");
        add(label);
    }
}

以上代码创建了一个简单的标签,并将其添加到了 JPanel 中。

添加文本框
import java.awt.*;
import javax.swing.*;

public class MainPanel extends JPanel {
    public MainPanel() {
        JTextField textField = new JTextField("输入文本");
        add(textField);
    }
}

以上代码创建了一个简单的文本框,并将其添加到了 JPanel 中。我们可以使用文本框的 getText 方法来获取用户输入的文本内容。

添加复选框
import java.awt.*;
import javax.swing.*;

public class MainPanel extends JPanel {
    public MainPanel() {
        JCheckBox checkBox = new JCheckBox("复选框");
        add(checkBox);
    }
}

以上代码创建了一个简单的复选框,并将其添加到了 JPanel 中。我们可以使用复选框的 isSelected 方法来检查是否选中了该复选框。

添加下拉框
import java.awt.*;
import javax.swing.*;

public class MainPanel extends JPanel {
    public MainPanel() {
        String[] options = new String[] {"选项1", "选项2", "选项3"};
        JComboBox<String> comboBox = new JComboBox<>(options);
        add(comboBox);
    }
}

以上代码创建了一个简单的下拉框,并将其添加到了 JPanel 中。我们可以使用下拉框的 getSelectedItem 方法来获取用户选中的下拉框选项。

添加列表
import java.awt.*;
import javax.swing.*;

public class MainPanel extends JPanel {
    public MainPanel() {
        String[] options = new String[] {"选项1", "选项2", "选项3"};
        JList<String> list = new JList<>(options);
        add(list);
    }
}

以上代码创建了一个简单的列表,并将其添加到了 JPanel 中。我们可以使用列表的 getSelectedValuesList 方法来获取用户选中的列表项。

示例

下面是一个完整的示例代码,展示了如何创建一个带有多个 Swing GUI 元素的 JPanel。

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

public class MainPanel extends JPanel {
    public MainPanel() {
        setLayout(new GridLayout(7, 1));

        // 添加标签
        JLabel label = new JLabel("这是一个标签");
        add(label);

        // 添加文本框
        JTextField textField = new JTextField("输入文本");
        add(textField);

        // 添加按钮
        JButton button = new JButton("点击我");
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(null, "你点击了按钮");
            }
        });
        add(button);

        // 添加复选框
        JCheckBox checkBox = new JCheckBox("复选框");
        checkBox.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(null, "你选择了复选框");
            }
        });
        add(checkBox);

        // 添加下拉框
        String[] options = new String[] {"选项1", "选项2", "选项3"};
        JComboBox<String> comboBox = new JComboBox<>(options);
        comboBox.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(null, "你选择了下拉框选项 " + comboBox.getSelectedItem());
            }
        });
        add(comboBox);

        // 添加列表
        String[] listOptions = new String[] {"列表项1", "列表项2", "列表项3"};
        JList<String> list = new JList<>(listOptions);
        list.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent e) {
                JOptionPane.showMessageDialog(null, "你选择了列表项 " + list.getSelectedValue());
            }
        });
        add(new JScrollPane(list));

        // 添加网格布局
        JPanel gridPanel = new JPanel(new GridLayout(1, 2));
        gridPanel.add(new JLabel("网格布局"));
        gridPanel.add(new JButton("按钮"));
        add(gridPanel);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("JPanel 示例");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new MainPanel());
        frame.pack();
        frame.setVisible(true);
    }
}

该示例使用了多个 Swing GUI 元素,包括标签、文本框、按钮、复选框、下拉框、列表和网格布局。运行该示例并查看 Swing GUI 的效果。