Swing常用组件

2024-08-06 09:21:53 浏览数 (2)

前言

推荐一个网站给想要了解或者学习人工智能知识的读者,这个网站里内容讲解通俗易懂且风趣幽默,对我帮助很大。我想与大家分享这个宝藏网站,请点击下方链接查看。 https://www.captainbed.cn/f1

Swing常用组件包括多种界面元素,如按钮、文本框、标签、列表框等,用于构建图形用户界面(GUI)。这些组件提供了丰富的交互功能和可视化效果,使得Swing成为Java GUI开发的重要工具。

一、标签

Swing的 JLabel 类对 AWT 的 Label 类进行功能扩展,创建的标签不仅可以显示文本字符,而且可以显示图标。JLabel 类的构造方法(见表)进行了6次重线,可以创建各种标签

JLabel 类的构造方法

构造方法

描述

JLabel()

实例化空标签对象

JLabel(Icon image)

实例化指定图标的标签对象

JLabel(Icon image, int horizontalAlignment)

实例化标签对象,指定图标、水平对齐方式

JLabel(String text)

实例化指定文本的标签对象

JLabel(String text, Icon icon, int horizontalAlignment)

实例化标签对象,指定文本、图标、水平对齐方式

JLabel(String text, int horizontalAlignment)

实例化标签对象,指定文本、水平对齐方式

对于文本,JLabel 提供了不同于 Label的成员方法设置对齐方式,可以分垂直和水平两个方向;操作文本内容的成员方法与Label类似。在对图标的操作上,JLabel 提供了相应的setter和getter方法。

JLabel常用成员方法

成员方法

描述

getHorizontalAlignment()/getAlignmentX()

获取文本的水平对齐方式

getlcon()

获取标签上的图标

getText()

获取标签上的文本

getVerticalAlignment()/getAlignmentY()

获取文本的垂直对齐方式

setHorizontalAlignment(int alignment)/setAlignmentX()

设置文本的水平对齐方式

setlcon(Icon icon)

设置标签上的图标

setText(String text)

设置标签上的文本

setVerticalAlignment(int alignment)/ setAlignmentY()

设置文本的垂直对齐方式

JLabel 从接口 SwingConstants 继承了若干静态常量形式的成员属性,用于设置文本的对齐方式。用于水平对齐方式的有LEFTCENTER (标签只有图标时的默认对齐方式)、RIGHTLEADING(标签只有文本时的对齐方式),以及 TRAILING。用于垂直对齐方式的有 TOPCENTER (默认的),以及BOTTOM.

代码示例

示例一
代码语言:javascript复制
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class IconLabelExample {
    public static void main(String[] args) {
        // 创建一个JFrame窗口
        JFrame frame = new JFrame("Icon Label Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);

        // 创建一个带图标的JLabel
        ImageIcon icon = new ImageIcon("path/to/your/image.png"); // 替换为你自己的图像路径
        JLabel label = new JLabel(icon);

        // 将JLabel添加到JFrame窗口中
        frame.getContentPane().add(label);

        // 显示窗口
        frame.setVisible(true);
    }
}
示例二
getClass()

在Java中,getClass()Object类的一个方法,它返回对象的运行时类。

每个Java对象都继承了Object类,并因此继承了getClass()方法。这个方法的返回值是一个Class对象,它提供了有关对象所属类的信息。Class类有许多有用的方法,可以用来获取类的名称、包名、超类等信息,还可以通过反射来获取类的字段、方法和构造函数等。

以下是一个示例代码,展示了如何使用getClass()方法来获取对象的运行时类:

代码语言:javascript复制
public class Main {
    public static void main(String[] args) {
        String str = "Hello World";
        Class<?> clazz = str.getClass();
        System.out.println("运行时类名称:"   clazz.getName());
    }
}

在这个示例中,我们创建了一个String对象str,然后使用getClass()方法获取该对象的运行时类。通过调用getName()方法,我们可以获取类的名称并打印出来。

输出结果为:

代码语言:javascript复制
运行时类名称:java.lang.String

这个示例只是展示了getClass()方法的基本用法,实际上它还可以应用于其他类型的对象,例如自定义类的对象。

使用getClass()与getResource()配合使用,可以获取当前类包所在路径的资源文件的URL

代码语言:javascript复制
import java.awt.*;
import javax.swing.*;
import java.net.*;

public class test {
    public void main(String[] args) {
        // 创建一个JFrame窗口
        JFrame frame = new JFrame("Icon Label Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);

        URL u1 = getClass().getResource("China.png");
        //也可以写成u1 = test.class.getResource("China.png");
        Icon i1 = new ImageIcon(u1);
        JLabel l1 = new JLabel(i1);
        l1.setOpaque(true);//JLabel标签默认是透明的,设置为非透明
        // 将JLabel添加到JFrame窗口中
        frame.getContentPane().add(l1);

        // 显示窗口
        frame.setVisible(true);
    }
}

二、按钮(JButton)

Swing 的 JButton 类对 AWT 的Button 类进行功能扩展,创建的按钮不仅可以显示文本标签,而且可以显示图标

JButton构造方法

JButton类的构造方法有多个:

  • JButton():创建一个默认没有文本和图标的按钮。
  • JButton(Icon icon):创建一个带有指定图标的按钮。
  • JButton(String text):创建一个带有指定文本的按钮。
  • JButton(String text, Icon icon):创建一个带有指定文本和图标的按钮。
  • JButton(Action a):创建一个使用指定Action对象的按钮。
  • JButton(String text, Icon icon, int mnemonic):创建一个带有指定文本、图标和助记键的按钮。助记键是一个与按钮相关联的键盘按键,可以通过按下该按键触发按钮的点击事件。
  • JButton(String text, int mnemonic):创建一个带有指定文本和助记键的按钮。

JButton常用成员函数方法

JButton类是Swing组件库中的一个按钮组件,常用成员方法如下:

  1. JButton(String text):使用指定的文本创建一个新按钮。
  2. void addActionListener(ActionListener listener):将指定的动作侦听器添加到按钮上。
  3. void setText(String text):设置按钮上显示的文本。
  4. void setIcon(Icon icon):设置按钮上显示的图标。
  5. void setEnabled(boolean enabled):设置按钮是否启用。
  6. void setToolTipText(String text):设置按钮的工具提示文本。
  7. void setMnemonic(int key):设置按钮的快捷键字符。
  8. void setBounds(int x, int y, int width, int height):设置按钮的位置和大小。
  9. void setBackground(Color color):设置按钮的背景颜色。
  10. void setForeground(Color color):设置按钮的前景颜色。

代码示例

代码语言:javascript复制
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class JButtonExample {

    public static void main(String[] args) {
        // 创建一个 JFrame 对象
        JFrame frame = new JFrame("JButton Example");

        // 创建一个 JButton 对象
        JButton button = new JButton("Click me");

        // 设置按钮的位置和大小
        button.setBounds(100, 100, 100, 50);

        // 添加按钮的动作侦听器
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 当按钮被点击时,执行这里的代码
                System.out.println("Button clicked");
            }
        });

        // 将按钮添加到窗口中
        frame.add(button);

        // 设置窗口的大小和关闭操作
        frame.setSize(300, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 显示窗口
        frame.setVisible(true);
    }
}

三、文本框(JTextField)

Swing 中通过类 JTextField 实例化文本框对象,该类继承自类 JTextComponent。该类在创建文本框时,与AWT 的 TextField 一样,可以设置文本框内的初始文本内容、文本框的长度等。

Swing 为 JTextField 定义了一个子类 JPasswordField,专门用来输入“密码”的单行文本框;即对用户输入的字符采用密文的形式进行显示,如“****”。JPasswordField 在继承 JTextField 成员方法的基础上,还提供了成员方法 setEchoChar(),用来改变密码框的回显字符。

JTextField构造方法

JTextField类有以下构造方法:

  1. JTextField(): 创建一个没有文本的JTextField对象。
代码语言:javascript复制
JTextField textField = new JTextField();
  1. JTextField(int columns): 创建一个具有指定列数的JTextField对象。
代码语言:javascript复制
JTextField textField = new JTextField(10); // 创建一个具有10个列的JTextField对象
  1. JTextField(String text): 创建一个具有指定文本的JTextField对象。
代码语言:javascript复制
JTextField textField = new JTextField("Hello World"); // 创建一个带有文本"Hello World"的JTextField对象
  1. JTextField(String text, int columns): 创建一个具有指定文本和列数的JTextField对象。
代码语言:javascript复制
JTextField textField = new JTextField("Hello World", 10); // 创建一个带有文本"Hello World"和10个列的JTextField对象

通过这些构造方法,我们可以创建不同类型的JTextField对象,根据我们的需求来设置文本和列数。

JTextField常用成员方法

常用的JTextField成员方法包括:

  1. setText(String text):设置文本框的内容。
  2. getText():获取文本框的内容。
  3. setEditable(boolean editable):设置文本框是否可编辑。
  4. setColumns(int columns):设置文本框的列数。
  5. setHorizontalAlignment(int alignment):设置文本框中文本的水平对齐方式。
  6. selectAll():选择文本框中的所有文本。
  7. setCaretPosition(int pos):设置文本框中光标的位置。
  8. getSelectedText():获取被选中的文本。
  9. replaceSelection(String content):用指定的内容替换文本框中选中的文本。
  10. addActionListener(ActionListener listener):为文本框添加动作监听器,当用户敲击回车键时触发动作事件。

这些方法可以用来操作JTextField对象的文本内容、可编辑性、对齐方式以及添加和处理事件等。

代码示例

代码语言:javascript复制
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TextFieldExample {
    public static void main(String[] args) {
        // 创建一个 JFrame 对象
        JFrame frame = new JFrame("Text Field Example");

        // 创建一个面板
        JPanel panel = new JPanel();

        // 创建一个文本框和标签
        JTextField textField = new JTextField(20);
        JLabel label = new JLabel("Username");

        // 创建一个密码框和标签
        JPasswordField passwordField = new JPasswordField(20);
        JLabel passwordLabel = new JLabel("Password");

        // 创建一个按钮和按钮标签
        JButton button = new JButton("Login");

        // 添加组件到面板
        panel.add(label);
        panel.add(textField);
        panel.add(passwordLabel);
        panel.add(passwordField);
        panel.add(button);

        // 设置面板的布局
        panel.setLayout(new GridLayout(3, 2));

        // 添加面板到 JFrame
        frame.getContentPane().add(panel);

        // 设置 JFrame 的大小
        frame.setSize(400, 150);

        // 设置 JFrame 的可见性
        frame.setVisible(true);

        // 设置点击按钮时的动作事件
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 获取文本框和密码框的内容
                String username = textField.getText();
                String password = new String(passwordField.getPassword());

                // 在控制台打印用户名和密码
                System.out.println("Username: "   username);
                System.out.println("Password: "   password);
            }
        });
    }
}

四、文本域(JTextArea)

Swing 中通过类JTextArea 实例化文本城对象。该类继承自类JTextComponent。该类的构造方法有 6 种重载形式,但是无法通过参数赋值来指定滚动条,这一点与 AWT的TextArea 不同。应该调用 JScrollPane对象的成员方法 setViewportView()将 JTextArea 对象添加到JScrollPane 面板中,JScrollPane 面板是具有滚动条的面板。

JTextArea的构造方法

JTextArea的构造方法有多个重载形式,以下是其中的一些常用构造方法:

  1. JTextArea(): 创建一个默认的JTextArea对象,没有文本内容。
  2. JTextArea(String text): 创建一个具有指定文本内容的JTextArea对象。
  3. JTextArea(int rows, int columns): 创建一个具有指定行数和列数的JTextArea对象,但没有文本内容。
  4. JTextArea(String text, int rows, int columns): 创建一个具有指定文本内容、行数和列数的JTextArea对象。
  5. JTextArea(Document doc): 创建一个使用指定文档作为模型的JTextArea对象。
  6. JTextArea(Document doc, String text, int rows, int columns): 创建一个使用指定文档、文本内容、行数和列数的JTextArea对象。

以上构造方法可以根据需要选择合适的来创建JTextArea对象,并可以通过调用JTextArea的其他方法来设置和获取文本内容、行数和列数等属性。

JTextArea的常用成员方法

JTextArea类提供了许多常用的成员方法来操作文本区域的内容和属性。以下是JTextArea的一些常用成员方法:

  1. append(String str): 在文本区域的末尾追加指定的字符串。
  2. insert(String str, int pos): 在文本区域的指定位置插入指定的字符串。
  3. setText(String str): 设置文本区域的文本内容为指定的字符串。
  4. getText(): 获取文本区域的当前文本内容。
  5. setRows(int rows): 设置文本区域的行数。
  6. setColumns(int columns): 设置文本区域的列数。
  7. setLineWrap(boolean wrap): 设置是否自动换行。
  8. setEditable(boolean editable): 设置文本区域是否可编辑。
  9. getCaretPosition(): 获取当前光标位置。
  10. setSelectionStart(int start): 设置选中部分的起始位置。
  11. setSelectionEnd(int end): 设置选中部分的结束位置。
  12. getSelectedText(): 获取当前选中的文本。

这些方法可以通过调用JTextArea对象来使用,根据需要来操作文本区域的内容和属性。

代码示例

代码语言:javascript复制
import javax.swing.*;
import java.awt.*;

public class JTextAreaExample {
    public static void main(String[] args) {
        // 创建一个JFrame窗口
        JFrame frame = new JFrame("JTextArea Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        // 创建一个JTextArea对象
        JTextArea textArea = new JTextArea();
        textArea.setLineWrap(true); // 设置自动换行
        
        // 创建一个JScrollPane,并将JTextArea作为其视口组件
        JScrollPane scrollPane = new JScrollPane(textArea);
        
        // 将JScrollPane添加到JFrame窗口中
        frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
        
        // 设置窗口大小和可见性
        frame.setSize(400, 300);
        frame.setVisible(true);
    }
}

五、复选框(JCheckBox)

Swing的JCheckBox 类对 AWT的 ChecBbox类进行功能扩展,创建的复选框组件不仅可以显示文本标签,而且可以设置图标代替选项前的方框。JCheckBox 类的构造方法有8种重载形式。

JCheckBox的构造方法

JCheckBox的构造方法有以下几种:

  1. JCheckBox():创建一个没有标签的复选框。
  2. JCheckBox(String text):创建一个带有指定标签的复选框。
  3. JCheckBox(String text, boolean selected):创建一个带有指定标签和初始选择状态的复选框。
  4. JCheckBox(Icon icon):创建一个带有指定图标的复选框。
  5. JCheckBox(Icon icon, boolean selected):创建一个带有指定图标和初始选择状态的复选框。
  6. JCheckBox(String text, Icon icon):创建一个带有指定标签和图标的复选框。
  7. JCheckBox(String text, Icon icon, boolean selected):创建一个带有指定标签、图标和初始选择状态的复选框。

在这些构造方法中,text参数表示复选框的标签,icon参数表示复选框的图标,selected参数表示复选框的初始选择状态。

JCheckBox常用成员方法

JCheckBox类常用的成员方法有:

  1. isSelected():返回JCheckBox是否被选中。
  2. setSelected(boolean selected):设置JCheckBox是否被选中。
  3. isSelectedIcon():返回JCheckBox选中状态下的图标。
  4. setSelectedIcon(Icon icon):设置JCheckBox选中状态下的图标。
  5. getDisabledSelectedIcon():返回JCheckBox禁用且选中状态下的图标。
  6. setDisabledSelectedIcon(Icon icon):设置JCheckBox禁用且选中状态下的图标。
  7. getDisabledIcon():返回JCheckBox禁用状态下的图标。
  8. setDisabledIcon(Icon icon):设置JCheckBox禁用状态下的图标。
  9. getText():返回JCheckBox的文本。
  10. setText(String text):设置JCheckBox的文本。
  11. getIcon():返回JCheckBox的普通状态下的图标。
  12. setIcon(Icon icon):设置JCheckBox的普通状态下的图标。
  13. getActionCommand():返回JCheckBox的动作命令。
  14. setActionCommand(String command):设置JCheckBox的动作命令。
  15. addItemListener(ItemListener listener):为JCheckBox添加项目监听器。
  16. removeItemListener(ItemListener listener):移除JCheckBox的项目监听器。
  17. addActionListener(ActionListener listener):为JCheckBox添加动作监听器。
  18. removeActionListener(ActionListener listener):移除JCheckBox的动作监听器。

代码示例

下面是一个简单的JCheckBox的使用示例:

代码语言:javascript复制
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class CheckBoxExample extends JFrame {
    private JCheckBox checkBox1;
    private JCheckBox checkBox2;
    private JButton submitButton;

    public CheckBoxExample() {
        // 创建窗口
        setTitle("Checkbox Example");
        setSize(300, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new FlowLayout());

        // 创建复选框
        checkBox1 = new JCheckBox("Option 1");
        checkBox2 = new JCheckBox("Option 2");

        // 创建提交按钮
        submitButton = new JButton("Submit");

        // 添加复选框和按钮到窗口
        add(checkBox1);
        add(checkBox2);
        add(submitButton);

        // 添加按钮点击事件监听器
        submitButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String message = "你选择的选项是:";
                if (checkBox1.isSelected()) {
                    message  = "选项1 ";
                }
                if (checkBox2.isSelected()) {
                    message  = "选项2 ";
                }
                JOptionPane.showMessageDialog(null, message);
            }
        });
    }

    public static void main(String[] args) {
        CheckBoxExample checkBoxExample = new CheckBoxExample();
        checkBoxExample.setVisible(true);
    }
}

这个示例演示了如何创建一个带有两个复选框和一个按钮的窗口。当用户点击提交按钮时,程序会检查哪些复选框被选中,并以弹框的方式显示用户选择的选项。

六、单选按钮(JRadioButton)

Swing 中通过类 JRadioButton 实例化单选按钮对象。该类和 JCheckBox 有共同的父类 JToggleButton, JRadioButton 的构造方法多达8种重载形式,通过参数赋值可以在初始化单选按钮时,同时指定单选按钮的文字、图标,以及默认的状态选择等。

Swing 中的类 ButtonGroup 实例化按钮组对象。如果要将多个单选按钮组合成具有互斥关系的单选按钮组,则需要调用 ButtonGroup 对象的成员方法 add(), 添加这些单选按钮对象到同一个 ButtonGroup 对象中。

JRadioButton的构造方法

JRadioButton类的构造方法有以下几种:

  1. JRadioButton():创建一个默认未选中的单选按钮。
  2. JRadioButton(Icon icon):创建一个指定图标的未选中的单选按钮。
  3. JRadioButton(Icon icon, boolean selected):创建一个指定图标和选择状态的单选按钮。
  4. JRadioButton(String text):创建一个指定文本的未选中的单选按钮。
  5. JRadioButton(String text, boolean selected):创建一个指定文本和选择状态的单选按钮。
  6. JRadioButton(String text, Icon icon):创建一个指定文本和图标的未选中的单选按钮。
  7. JRadioButton(String text, Icon icon, boolean selected):创建一个指定文本、图标和选择状态的单选按钮。

其中,Icon是一个用于表示图标的接口,可以使用ImageIcon类来创建图标对象。

JRadioButton常用成员方法

JRadioButton类是Java Swing库中的一个组件,用于创建单选按钮。JRadioButton类继承自AbstractButton类,因此可以使用AbstractButton类中定义的大多数常用成员方法。以下是JRadioButton常用的成员方法:

  1. isSelected():检查单选按钮是否被选中。
  2. setSelected(boolean selected):设置单选按钮的选中状态。
  3. getText():获取单选按钮的文本。
  4. setText(String text):设置单选按钮的文本。
  5. isEnabled():检查单选按钮是否可用。
  6. setEnabled(boolean enabled):设置单选按钮是否可用。
  7. getActionCommand():获取单选按钮的动作命令。
  8. setActionCommand(String command):设置单选按钮的动作命令。
  9. addItemListener(ItemListener listener):添加项目监听器,用于处理单选按钮的选择事件。
  10. removeItemListener(ItemListener listener):移除项目监听器。

以上是JRadioButton类的一些常用成员方法,可以通过调用这些方法来操作和控制单选按钮的状态和行为。

代码示例

下面是一个使用JRadioButton的示例代码:

代码语言:javascript复制
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class JRadioButtonExample extends JFrame {
    private JLabel label;

    public JRadioButtonExample() {
        setTitle("JRadioButton Example");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(300, 200);
        setLocationRelativeTo(null);

        JPanel panel = new JPanel();

        JRadioButton radioButton1 = new JRadioButton("Option 1");
        JRadioButton radioButton2 = new JRadioButton("Option 2");
        JRadioButton radioButton3 = new JRadioButton("Option 3");

        ButtonGroup buttonGroup = new ButtonGroup();
        buttonGroup.add(radioButton1);
        buttonGroup.add(radioButton2);
        buttonGroup.add(radioButton3);

        radioButton1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                label.setText("Option 1 selected");
            }
        });

        radioButton2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                label.setText("Option 2 selected");
            }
        });

        radioButton3.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                label.setText("Option 3 selected");
            }
        });

        panel.add(radioButton1);
        panel.add(radioButton2);
        panel.add(radioButton3);

        label = new JLabel("Select an option");
        panel.add(label);

        add(panel);
    }

    public static void main(String[] args) {
        JRadioButtonExample example = new JRadioButtonExample();
        example.setVisible(true);
    }
}

这个示例展示了一个简单的窗口,在窗口中有三个JRadioButton对象和一个JLabel对象。它们都被添加到一个JPanel中,并且通过ButtonGroup对象进行分组,以确保只能选择一个选项。当选择一个选项时,会显示相应的信息在JLabel中。

七、下拉列表(JComboBox)

Swing 中通过类JComboBox 实例化下拉列表对象。JComboBox创建的下拉列表类似干 Windows 操作系统中的组合列表框,不仅可以进行项目选择模作,同时可以进行项目编辑操作。JComboBox的构造方法有4种重载形式,通过参数陆值可以在初始化下拉列表时,同时添加下拉列表的选项;添加的方式有 3 种类型,包括数组、Vecior 类型和ComboBoxModel 模型。与 AWT 中类 Choice 创建的下拉列表中的选项不同,JComboBox 所创建的下拉列表的选项可以是任何类型,不再局限于文本字符串。

若在类JComboBox 创建下拉列表的同时添加选项,首先需要创建选项的数组,或者将选项封装为 ComboBoxModel 对象,或者创建 Vector对象;然后选用相应的 JComboBox 构造方法实例化下拉列表对象。

JComboBox的构造方法

JComboBox的构造方法有以下几种:

  1. JComboBox():创建一个空的下拉列表框。
  2. JComboBox(Object[] items):使用指定的项数组创建一个下拉列表框。
  3. JComboBox(Vector<?> items):使用指定的项向量创建一个下拉列表框。
  4. JComboBox(ComboBoxModel<?> aModel):使用指定的ComboBoxModel创建一个下拉列表框。

其中,ComboBoxModel是一个接口,用于提供下拉列表框的数据模型。常用的实现类有DefaultComboBoxModel和可编辑的DefaultComboBoxModel。

JComboBox常用成员方法

JComboBox常用成员方法包括:

  1. addItem(Object item):向下拉列表中添加一个选项。
  2. removeItem(Object item):从下拉列表中移除指定的选项。
  3. getSelectedItem():返回当前选中的选项。
  4. setSelectedItem(Object item):设置当前选中的选项。
  5. getItemCount():返回下拉列表中的选项数量。
  6. getItemAt(int index):返回指定索引位置的选项。
  7. setEditable(boolean editable):设置下拉列表是否可编辑。
  8. setRenderer(ListCellRenderer renderer):设置下拉列表中选项的渲染方式。
  9. addActionListener(ActionListener listener):为下拉列表添加一个动作监听器。
  10. getActionCommand():返回与最后一个选定的下拉列表项关联的操作命令。

这些方法可以帮助你对JComboBox进行操作和获取信息。

代码示例

代码语言:javascript复制
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ComboBoxExample {
    public static void main(String[] args) {
        // 创建 JFrame 实例
        JFrame frame = new JFrame("ComboBox Example");
        // 设置窗口的宽高
        frame.setSize(300, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 创建一个标签和一个空的 ComboBox
        JLabel label = new JLabel("请选择一个选项:");
        JComboBox comboBox = new JComboBox();

        // 添加选项到 ComboBox
        comboBox.addItem("选项一");
        comboBox.addItem("选项二");
        comboBox.addItem("选项三");

        // 设置默认选项
        comboBox.setSelectedIndex(0);

        // 创建一个按钮
        JButton button = new JButton("确定");

        // 创建一个监听器,用于监听按钮的点击事件
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 获取选择的选项
                String selectedOption = (String) comboBox.getSelectedItem();
                // 在控制台输出选项
                System.out.println("选择的选项是:"   selectedOption);
            }
        });

        // 创建一个面板,并将标签、ComboBox和按钮添加到面板中
        JPanel panel = new JPanel();
        panel.add(label);
        panel.add(comboBox);
        panel.add(button);

        // 将面板添加到窗口中
        frame.add(panel);

        // 设置窗口可见
        frame.setVisible(true);
    }
}

八、列表(JList)

Swing 中通过类JList实例化列表对象。JList 的构造方法有4种重载形式,通过参数赋值可以在初始化列表时,同时添加列表的选项:添加的方式有3种类型,包括数组、Vector 类型和 ListModel 模型。而AWT中的 List在初始化列表时,不能添加列表选项;此外,JList 所创建的列表的选项可以是任何类型,不再局限于文本字符串。

若在类JList 创建列表的同时添加选项,首先需要创建选项的数组,或者将选项封装为ListModel 对象,或者创建 Vector对象;然后选用相应的JList构造方法实例化列表对象。

JList的构造方法

JList是Swing组件中的一个类,用于显示列表数据。JList的构造方法有多种重载形式,可以根据不同的需求进行选择。

  1. JList(): 创建一个空的JList对象。
  2. JList(Object[] listData): 创建一个包含给定列表数据的JList对象。
  3. JList(Vector<?> listData): 创建一个包含给定列表数据的JList对象。
  4. JList(ListModel dataModel): 创建一个使用指定数据模型的JList对象。
  5. JList(DefaultListModel dataModel): 创建一个使用指定数据模型的JList对象。

这些构造方法允许我们使用不同的方式来初始化JList对象,包括直接传入列表数据、使用数据模型等。根据实际需求选择合适的构造方法即可。

JList常用成员方法

JList类是Java Swing库中的一个成员,用于显示一列数据,并允许用户从中选择一个或多个项目。下面是JList类中一些常用的成员方法:

  1. JList(Object[] listData): 创建一个JList对象,传入一个Object数组作为列表数据。
  2. JList(Vector listData): 创建一个JList对象,传入一个Vector对象作为列表数据。
  3. void setListData(Object[] listData): 设置JList的列表数据,传入一个Object数组。
  4. void setListData(Vector listData): 设置JList的列表数据,传入一个Vector对象。
  5. Object[] getListData(): 返回JList的列表数据,以Object数组的形式。
  6. void setSelectionMode(int selectionMode): 设置JList的选择模式,可以是SINGLE_SELECTION(单选)、SINGLE_INTERVAL_SELECTION(单一间隔选择)或MULTIPLE_INTERVAL_SELECTION(多个间隔选择)。
  7. int getSelectionMode(): 返回JList的选择模式。
  8. void setSelectedIndex(int index): 设置JList中指定索引的项目为选中状态。
  9. void setSelectedIndices(int[] indices): 设置JList中指定索引的项目为选中状态。
  10. void setSelectedValue(Object value, boolean shouldScroll): 设置JList中指定值的项目为选中状态,可以选择是否滚动到选中的项目。
  11. Object getSelectedValue(): 返回被选中的项目的值。
  12. int[] getSelectedIndices(): 返回被选中的项目的索引,以整数数组的形式。
  13. void clearSelection(): 清除JList中的所有选中状态。
  14. boolean isSelectedIndex(int index): 判断指定索引的项目是否为选中状态。
  15. void ensureIndexIsVisible(int index): 确保指定索引的项目可见,如果需要的话,会自动滚动到相应位置。

这些是JList类中一些常用的成员方法,可以用来操作和获取JList对象中的数据和状态。

代码示例

下面是一个使用JList的示例代码:

代码语言:javascript复制
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class JListExample extends JFrame {

    private DefaultListModel<String> model;
    private JList<String> myList;
    private JButton addButton;
    private JButton removeButton;

    public JListExample() {
        model = new DefaultListModel<>();
        myList = new JList<>(model);
        addButton = new JButton("Add Item");
        removeButton = new JButton("Remove Item");

        addButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String newItem = JOptionPane.showInputDialog("Enter new item:");
                model.addElement(newItem);
            }
        });

        removeButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int selectedIndex = myList.getSelectedIndex();
                if(selectedIndex != -1) {
                    model.remove(selectedIndex);
                }
            }
        });

        JPanel panel = new JPanel();
        panel.add(myList);
        panel.add(addButton);
        panel.add(removeButton);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().add(panel);
        pack();
        setVisible(true);
    }

    public static void main(String[] args) {
        new JListExample();
    }
}

这个示例展示了如何使用JList来显示一组项目,并且可以添加和删除项目。在这个示例中,我们使用了DefaultListModel来保存项目列表,并将其作为参数传递给JList构造函数。然后,我们创建了两个按钮,一个用于添加项目,另一个用于删除选定的项目。当点击添加按钮时,会弹出一个对话框,要求用户输入新项目的名称,并将其添加到列表中。当点击删除按钮时,会删除选定的项目。整个界面使用JPanel来组织,并且使用了JFrame作为窗口容器。

0 人点赞