簡體   English   中英

如何在多個項目選擇的java swing中創建一個下拉列表?

[英]How to create a drop-down list in java swing with multiple item selection?

我知道JListJComboBox 我需要具有JList提供的多個選擇功能的組合框下拉功能。

這是因為列表的內容太大而無法使用簡單列表顯示。 我還需要選擇多個項目,否則我會滿足於JComboBox

有什么建議么?

使用多選時,最好使用列表而不是組合框。 隨着GUI隱喻的出現,人們希望組合框可以單選,而列表也可以。

列表的內容太大,無法使用簡單列表顯示

JList放在JScrollPane 您可以在JList上調用setVisibleRowCount(int)來指定一次應顯示多少行。

您可以為組合框創建自定義單元格渲染器,並為該組件添加復選框,以便您可以選中和取消選中它們。 你必須做這樣的事情:

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組件,在“ 公布新的Swing樹表”和本答案中進行了討論 這是API的當前開發版本

為了實現所描述的功能,我最終決定“濫用” JMenuBar並添加幾個JCheckBoxMenuItems GUI然后完全符合目的(至少對我來說),只是處理ItemEvent有可能變得有點煩人。

(最后在那里,我在項目上定義了一些邏輯,然后可能限制自己只處理一種類型的事件)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM