Java 中 JComboBox 和 JList 的区别是什么?


一个JComboBox是一个显示下拉列表的组件,并为用户提供选项,用户可以一次仅选择一个项目,而一个JList则向用户显示多个项目(行),并提供一个选项让用户选择多个项目

JComboBox

  • 一个JComboBox可以是可编辑的只读的
  • ActionListenerChangeListenerItemListener接口可用于处理用户对JComboBox的操作。
  • getSelectedItem()方法可用于从组合框中获取选定的或输入的项目。
  • setEditable()方法可用于打开或关闭组合框的文本输入部分。
  • 我们可以从数组或向量创建一个JComboBox实例。大多数情况下,我们将使用ComboBoxModel来操作组合框的元素。

示例

import java.awt.*;
import javax.swing.*;
public class JComboBoxTest extends JFrame {
   JComboBoxTest() {
      setTitle("JComboBox Test");
      String country[] = {"India","Aus","Singapore","England","Newzealand"};
      JComboBox jcb = new JComboBox(country);
      setLayout(new FlowLayout());
      add(jcb);
      setSize(300, 250);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setVisible(true);
   }
   public static void main(String[] args) {
      new JComboBoxTest();
   }
}

输出

JList

  • 一个JList是一个允许用户选择单选多选的组件。
  • JList类本身不支持滚动条。为了添加滚动条,我们必须将JScrollPane类与JList类一起使用。然后,JScrollPane会自动管理滚动条。
  • getSelectedIndex()方法返回第一个选中项目的索引,如果未选中任何项目则返回-1,而getSelectedIndexes()方法返回一个包含每个选中项目索引的数组。如果未选中任何项目,则数组为空。
  • getSelectedValue()返回第一个选定的项目,如果未选中任何项目则返回null。
  • DefaultListModel类提供了一个列表模型的简单实现,可用于管理JList控件显示的项目。

示例

import java.awt.*;
import javax.swing.*;
public class JListTest extends JFrame {
   JListTest() {
      setTitle("JList Test");
      DefaultListModel dlm = new DefaultListModel();
      dlm.addElement("India");
      dlm.addElement("Aus");
      dlm.addElement("England");
      dlm.addElement("Singapore");
      JList list = new JList();
      list.setModel(dlm);
      setLayout(new FlowLayout());
      add(list);
      setSize(350,275);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setVisible(true);
   }
   public static void main(String args[]) {
      new JListTest();
   }
}

输出

更新时间: 2020年2月7日

3K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告