📜  Java AWT List列表(1)

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

Java AWT List列表

Java AWT List列表是一种用户界面组件,用于显示一系列项目并允许用户从中选择一个或多个项目。它可以像单选按钮或复选框一样使用,但是相比于它们,List控件提供了更多的选项,例如允许用户选择多个项,可以滚动长列表等。在本文中,我们将深入了解如何在Java应用程序中使用AWT List控件。

创建List列表

创建List控件必须实例化一个java.awt.List类。它有两个构造函数,一个是不带参数的构造函数,另一个是带字符串数组参数的构造函数。下面是两种构造函数的示例:

List list1 = new List(); //不带参数的构造函数
String[] items = {"Item 1", "Item 2", "Item 3"};
List list2 = new List(items); //带字符串数组参数的构造函数
添加选项

向已创建的List控件添加项,我们可以使用addItem()方法。该方法可以接受一个字符串类型的参数作为项的文本。例如:

list1.addItem("Item 1");
list1.addItem("Item 2");
list1.addItem("Item 3");
获取选中项

我们可以使用getSelectedIndex()方法获取当前选择的项的索引,或使用getSelectedItem()方法获取当前选定项目的文本。如果allowMultipleMode设置为true,则可以使用getSelectedIndexes()和getSelectedItems()方法分别获取选定项目的索引和文本列表。

int selectedIndex = list1.getSelectedIndex();
String selectedItem = list1.getSelectedItem();
int[] selectedIndexes = list1.getSelectedIndexes();
String[] selectedItems = list1.getSelectedItems();
设置允许多选

默认情况下,List控件只允许选中一个项目。但是,我们可以设置它允许选中多个项目。通过调用setMultipleMode(true)方法,可以启用列表的多项选择。如果allowMultipleMode设置为false,则只能选择一个项目。

list1.setMultipleMode(true);
设置行数

我们可以使用setVisibleRowCount()方法设置List控件中的可见行数。此设置将确定列表的高度并控制列表是否实现滚动。

list1.setVisibleRowCount(5);
添加事件处理程序

当用户单击List控件中的项时,我们可以使用ItemListener接口添加事件处理程序。这个接口只有一个方法itemStateChanged(),每次选中一个项时都会触发该方法。我们可以在此方法内执行相应的代码。

list1.addItemListener(new ItemListener() {
    public void itemStateChanged(ItemEvent e) {
        //执行代码
    }
});
示例代码
import java.awt.*;
import java.awt.event.*;

public class ListDemo extends Frame {
    List list;

    public ListDemo() {
        setLayout(new FlowLayout());
        list = new List(5, true);
        list.add("Item 1");
        list.add("Item 2");
        list.add("Item 3");
        list.add("Item 4");
        list.add("Item 5");
        add(list);
        Label label = new Label("Selected Item");
        add(label);
        TextField textField = new TextField(20);
        add(textField);
        list.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent e) {
                String selectedItem = list.getSelectedItem();
                textField.setText(selectedItem);
            }
        });
        setTitle("List Demo");
        setSize(300, 200);
        setVisible(true);
    }

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

以上是一个简单的Java AWT List控件的使用示例,包括创建列表、添加选项、获取选中项、设置允许多选、设置行数和添加事件处理程序。