我知道 JListJComboBox. 。我需要组合框下拉功能,并具有多个选择功能 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;
    }

}

如果您的数据具有分层字符,请考虑NetBeans' Outline 组件,讨论 宣布新的秋千树表 在这个 回答. 。这是 当前开发版本 API。

为了达到所描述的功能,我终于决定“滥用” JMenuBar 并添加几个 JCheckBoxMenuItems. 。然后,GUI完全适合目的(至少对我而言),只是对ItemEvent的处理可能会变得有些烦人。

(最后,我在项目上定义了一些位逻辑,然后可能只限于只处理一种类型的事件)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top