7

私は知っているJListJComboBox。提供する複数の選択機能を備えたコンボボックスのドロップダウン機能が必要JListです。

これは、リストの内容が大きすぎて単純なリストでは表示できないためです。また、複数のアイテムを選択する必要があります。そうしないと、に満足していたでしょうJComboBox

助言がありますか?

4

4 に答える 4

9

複数選択を使用する場合は、コンボボックスよりもリストを使用することをお勧めします。GUIの比喩が進むにつれ、人々はコンボボックスが単一選択であると期待しますが、リストはどちらでもかまいません。

リストの内容が大きすぎて、単純なリストを使用して表示することはできません

に配置JListJScrollPaneます。でsetVisibleRowCount(int)を呼び出しJListて、一度に表示する行数を指定できます。

于 2010-05-18T19:17:28.263 に答える
6

コンボボックス用のカスタム セル レンダラーを作成し、そのコンポーネントにチェックボックスを追加して、それらをオンまたはオフにすることができます。次のようなものを作成する必要があります。

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;
    }

}
于 2010-05-18T19:24:20.333 に答える
2

データに階層的な特徴がある場合は、新しい Swing ツリー テーブルの発表とこの回答で説明されている NetBeans のOutlineコンポーネントを検討してください。APIの現在の開発バージョンは次のとおりです。

于 2010-05-18T20:30:26.907 に答える
1

説明した機能を実現するために、最終的に を「悪用」し、JMenuBarいくつかの を追加することにしましたJCheckBoxMenuItems。GUIは(少なくとも私にとっては)目的に完全に適合します。少し面倒になるリスクがあるのは、ItemEventの処理だけです。

(最後に、項目に対していくつかのビット ロジックを定義し、1 つのタイプのイベントのみを処理するように制限する場合があります)

于 2016-07-28T22:04:19.093 に答える