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单选按钮的用法(附带实例)