Java 中 JComboBox 和 JList 的区别是什么?
一个JComboBox是一个显示下拉列表的组件,并为用户提供选项,用户可以一次仅选择一个项目,而一个JList则向用户显示多个项目(行),并提供一个选项让用户选择多个项目。
JComboBox
- 一个JComboBox可以是可编辑的或只读的。
- ActionListener、ChangeListener或ItemListener接口可用于处理用户对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(); } }
输出
广告