Swing中由JComboBox表示一个组合框。组合框表面上看来像下拉列表、文本框和一个下拉按钮的组合,分可编辑和不可编辑两类。
有多种组件允许用户进行选择,如单选按钮,复选按钮,列表(JList)等,当界面空间有限并且项目不定(可能需要输入)请用JComboBox,但如果项目很多,请使用JList。
1、使用不可编辑的JComboBox
String[] petStrings = { "Bird", "Cat", "Dog", "Rabbit", "Pig" };
//Create the combo box, select item at index 4.
//Indices start at 0, so 4 specifies the pig.
JComboBox petList = new JComboBox(petStrings);
petList.setSelectedIndex(4);
petList.addActionListener(this);
上例中的ComboBox包含了一个字符串数组,同样也可以包含一组图标,如果想包含其他对象或自定义表项的观感,对于不可编辑ComboBox来说,需要自定义Render,对于可编辑ComboBox,需要自定义Editor。
ComboBox对象在其后台使用一个ComboBoxModel管理其所含的数据项。不管使用什么构造器实例化ComboBox,都会提供一个默认的ComboBoxModel。编程者也可以按需自己提供ComboBoxMode,但如果想使用诸如insertItemAt等的改变列表项的方法,必须实现MutableComboBoxModel接口。自定义MODEL时,为了避开编写发送事件代码的复杂性,可以直接继承AbstractListModel。
2、事件处理
支持注册两类监听器ActionListener和ItemListener,分别处理ActionEvent和ItemEvent。
3、使用可编辑的JComboBox
JComboBox patternList = new JComboBox(patternExamples);
patternList.setEditable(true);
patternList.addActionListener(this);
4、自定义Render
ComboBox使用Render来显示他菜单中的每一个列表项,如果该列表框是不可编辑的,使用Render显示被选中项,如果是可编辑的,使用Editor显示选中项。ComboBox的Render都必须实现
ListCellRenderer接口,Editor都必须实现ComboBoxEditor。默认的render指导如何渲染字符串和图标(Icon),如果将一个Object对象放到ComboBox中,默认Render将会调用它的toString方法以渲染该项目。
分享到:
相关推荐
// 假设我们想在第一列使用JComboBox table.getColumnModel().getColumn(0).setCellEditor(editor); ``` 5. **自定义单元格渲染器** 虽然默认的`DefaultTableCellRenderer`可能能工作,但有时你可能需要自定义渲染...
3. **过滤逻辑**:过滤逻辑可能包括简单的字符串匹配,如使用`String.contains()`方法检查选项是否包含关键词,或者更复杂的正则表达式匹配。根据需求,还可以考虑大小写敏感性、模糊匹配等。 4. **刷新视图**:当...
总的来说,这个项目涵盖了Swing组件的使用、自定义`TableModel`、`TableCellEditor`的实现以及异常情况的调试和修复,这些都是Java GUI编程中重要的实践技能。通过学习和理解这个例子,开发者可以提升在Java桌面应用...
在这个类中,我们需要重写`getColumnClass`方法,确保指定列的数据类型为`JComboBox`,这样`JTable`就会知道应该使用`TableCellEditor`来编辑该列。 2. **实现TableCellEditor** 实现`TableCellEditor`接口,创建...
总之,将`JComboBox`与`JTable`结合使用,需要自定义渲染器和编辑器来确保其正确显示和交互。通过上述步骤,你可以在`JTable`中创建一个具有下拉箭头的`JComboBox`,解决了无下拉箭头的问题。在实际开发中,你可能...
使用`JDBC`,我们需要导入相关的驱动库,例如对于`SQL2000`,通常使用`Microsoft JDBC Driver`。在代码中加载驱动并建立连接的示例如下: ```java Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");...
1. **JComboBox的基本使用**: `JComboBox`是Java Swing中的一个组件,它提供了一个可下拉的列表供用户选择。创建`JComboBox`的基本步骤包括实例化`JComboBox`对象,添加选项(元素),并将其添加到容器(如`JFrame...
combox.js,对下拉框自动搜索功能
Java Swing JComboBox ...我们使用 JComboBox 的构造方法创建了一个 JComboBox 实例,并将其添加到 JPanel 中。然后,我们添加了一个 ItemListener 监听器,以便在用户选择了一个选项时打印出当前选中的索引和数据项。
为了实现多选,我们需要使用一个支持多选的模型,如DefaultListModel或Vector,并将其与JList结合使用。然后,我们将JList嵌入到JScrollPane中,最后将JScrollPane添加到JComboBox中。 2. **定制JComboBox**: - ...