如何在Java Swing中创建一个使用多项项目选择的下拉列表?
-
30-09-2019 - |
题
我知道 JList
和 JComboBox
. 。我需要组合框下拉功能,并具有多个选择功能 JList
提供。
这是因为列表的内容太大,无法使用简单列表显示。我还需要选择多个项目,否则我会很满意 JComboBox
.
有什么建议么?
解决方案
使用多选中时,使用列表比组合框更好。随着GUI隐喻的流逝,人们期望组合盒是单个选择的,而列表也可以。
列表的内容太大,无法使用简单列表显示
放置 JList
在一个 JScrollPane
. 。你可以打电话 setVisiblerowCount(int) 在 JList
指定一次应显示多少行。
其他提示
您可以为Combobox制作自定义的单元格渲染器,并在该组件中添加复选框,因此您可以检查并取消选中它们。您必须做这样的事情:
public class MyComboBoxRenderer implements ListCellRenderer {
private String[] items;
private boolean[] selected;
public MyComboBoxRenderer(String[] items){
this.items = items;
this.selected = new boolean[items.lenght];
}
public Component getListCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int index) {
// Create here a JLabel with the text
// Create here a JCheckBox
// Add them to a layoutmanager
return this;
}
public void setSelected(int i, boolean flag)
{
this.selected[i] = flag;
}
}
为了达到所描述的功能,我终于决定“滥用” JMenuBar
并添加几个 JCheckBoxMenuItems
. 。然后,GUI完全适合目的(至少对我而言),只是对ItemEvent的处理可能会变得有些烦人。
(最后,我在项目上定义了一些位逻辑,然后可能只限于只处理一种类型的事件)
不隶属于 StackOverflow