Java Swing JList列表框的用法(附带实例)
Swing 中提供两种列表组件,分别为下拉列表框(JComboBox)与列表框(JList)。
下拉列表框与列表框都是带有一系列列表项的组件,用户可以从中选择需要的列表项:
本节将详细讲解列表框的使用。列表框组件被添加到窗体中后,就会被指定长和宽。如果列表框的大小不足以容纳列表项的个数,那么需要设置列表框具有滚动效果,即把列表框添加到滚动面板中。
用户在选择列表框中的列表项时,既可以通过单击列表项的方式选择列表项,也可以通过“单击列表项+按住Shift键”的方式连续选择列表项,还可以通过“单击列表项+按住Ctrl键”的方式跳跃式选择列表项,并能够在非选择状态和选择状态之间反复切换。
列表框组件由 JList 对象表示,JList 类的常用构造方法如下:
例如,使用数组类型的数据作为创建 JList 对象的参数,关键代码如下:
再如,使用 Vector 类型的数据作为创建 JList 对象的参数,关键代码如下:
【实例】在列表框中显示用户的所选内容。创建 JListTest 类,并继承 JFrame 类,在窗体中创建列表框对象,当单击“确认”按钮时,把被选中的列表项显示在文本域中。

图 1 列表框的使用
下拉列表框与列表框都是带有一系列列表项的组件,用户可以从中选择需要的列表项:
- 列表框较下拉列表框更直观,它将所有的列表项罗列在列表框中;
- 下拉列表框较列表框更为便捷、美观,它将所有的列表项隐藏起来,当用户选用其中的列表项时才会显现出来。
本节将详细讲解列表框的使用。列表框组件被添加到窗体中后,就会被指定长和宽。如果列表框的大小不足以容纳列表项的个数,那么需要设置列表框具有滚动效果,即把列表框添加到滚动面板中。
用户在选择列表框中的列表项时,既可以通过单击列表项的方式选择列表项,也可以通过“单击列表项+按住Shift键”的方式连续选择列表项,还可以通过“单击列表项+按住Ctrl键”的方式跳跃式选择列表项,并能够在非选择状态和选择状态之间反复切换。
列表框组件由 JList 对象表示,JList 类的常用构造方法如下:
- public void JList():创建一个空的 JList 对象;
- public void JList(Object[] listData):创建一个显示指定数组中的元素的 JList 对象;
- public void JList(Vector listData):创建一个显示指定 Vector 中的元素的 JList 对象;
- public void JList(ListModel dataModel):创建一个显示指定的非 null 模型的元素的 JList 对象。
例如,使用数组类型的数据作为创建 JList 对象的参数,关键代码如下:
String[] contents = {"列表 1", "列表 2", "列表 3", "列表 4"};
JList jl = new JList(contents);
再如,使用 Vector 类型的数据作为创建 JList 对象的参数,关键代码如下:
Vector contents = new Vector();
JList jl = new JList(contents);
contents.add("列表 1");
contents.add("列表 2");
contents.add("列表 3");
contents.add("列表 4");
【实例】在列表框中显示用户的所选内容。创建 JListTest 类,并继承 JFrame 类,在窗体中创建列表框对象,当单击“确认”按钮时,把被选中的列表项显示在文本域中。
import java.awt.Container;
import java.awt.event.*;
import javax.swing.*;
public class JListTest extends JFrame {
public JListTest() {
Container cp = getContentPane(); // 获取窗体主容器
cp.setLayout(null); // 容器使用绝对布局
// 创建字符串数组,保存列表中的数据
String[] contents = {"列表 1", "列表 2", "列表 3", "列表 4", "列表 5", "列表 6"};
JList<String> jl = new JList<>(contents); // 创建列表框,并将字符串数组作为构造参数
JScrollPane js = new JScrollPane(jl); // 将列表框加入滚动面板中
js.setBounds(10, 10, 100, 100); // 设置滚动面板的坐标和大小
cp.add(js);
JTextArea area = new JTextArea(); // 创建文本域
JScrollPane scrollPane = new JScrollPane(area); // 将文本域放入滚动面板中
scrollPane.setBounds(118, 10, 73, 80); // 设置滚动面板的坐标和大小
cp.add(scrollPane);
JButton btnNewButton = new JButton("确认"); // 创建“确认”按钮
btnNewButton.setBounds(120, 96, 71, 23); // 设置按钮的坐标和大小
cp.add(btnNewButton);
// 添加按钮事件
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 获取列表中被选中的元素,返回 java.util.List 类型
java.util.List<String> values = jl.getSelectedValuesList();
area.setText(""); // 清空文本域
for (String value : values) {
area.append(value + "\n"); // 在文本域中循环追加列表中被选中的值
}
}
});
setTitle("在这个窗体中使用了列表框");
setSize(217, 167);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String args[]) {
new JListTest();
}
}
运行结果如下图所示:
图 1 列表框的使用
相关文章
- Java Swing.JFrame的用法(附带实例)
- Java Swing JDialog对话框的用法(附带实例)
- Java Swing JOptionPane对话框用法详解(附带实例)
- Java Swing FlowLayout布局管理器的用法(附带实例)
- Java Swing BorderLayout布局管理器的用法(附带实例)
- Java Swing JPanel和JScrollPane面板的用法(附带实例)
- Java Swing JLabel标签的用法(附带实例)
- Java Swing ImageIcon图标类的用法(附带实例)
- Java Swing JButton按钮的用法(附带实例)
- Java Swing JRadioButton单选按钮的用法(附带实例)
ICP备案:
公安联网备案: