私はマルチセレクションのコンボボックスを作成する必要がありますか?複数選択によるコンボボックスの作成方法
答えて
(複数選択して、リストのような)カスタムコンボボックスのポップアップコンテンツを作成すると、いくつかの基本的な問題があります。
1.デフォルトUIはそうあなたが全体を変更する必要がありますその動作を変更するコンテンツとしてJListの使用を示唆していますComboBoxUI
2.デフォルトでコンボボックスリストを複数選択に変更することはできません。最後に1つの値だけが選択され、リストにはデフォルトのロールオーバー選択マウスリスナーがあり、これ以上選択できません1つの要素より多く
私はあなたに私達にお勧めしたいコンボボックスの代わりに単純なJListを使用するか、JideSoftのような拡張コンポーネントライブラリを使用してみてください。これらのコンポーネントは、Swing機能を使用してすばやく作成することができません。
良い点、ありがとう。 – manhnt
ちょうど私はすでにコンボボックスのポップアップをツリー状に変えようとしましたが、失敗しました。その試みにはほぼ一日かかりました。ですから、JList ORをオプションとして使用することをお勧めします.JButtonは、あなたが好きなコンポーネント/エディタを含むポップアップを持っています。 –
私は質問がかなり古いであることを、知っているが、まだこの問題の解決策を探す人たちのために、次のコードを試してみてください。ここでは
public class ComboSelections {
public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, UnsupportedLookAndFeelException {
UIManager.setLookAndFeel((LookAndFeel) Class.forName("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel").newInstance());
final JPopupMenu menu = new JPopupMenu();
JMenuItem one = new JCheckBoxMenuItem("One");
JMenuItem two = new JCheckBoxMenuItem("Two");
JMenuItem three = new JCheckBoxMenuItem("Three");
JMenuItem four = new JCheckBoxMenuItem("Four");
menu.add(one);
menu.add(two);
menu.add(three);
menu.add(four);
final JButton button = new JButton("Click me");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (!menu.isVisible()) {
Point p = button.getLocationOnScreen();
menu.setInvoker(button);
menu.setLocation((int) p.getX(),
(int) p.getY() + button.getHeight());
menu.setVisible(true);
} else {
menu.setVisible(false);
}
}
});
one.addActionListener(new OpenAction(menu, button));
two.addActionListener(new OpenAction(menu, button));
three.addActionListener(new OpenAction(menu, button));
four.addActionListener(new OpenAction(menu, button));
JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.add(button);
frame.getContentPane().add(panel);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
private static class OpenAction implements ActionListener {
private JPopupMenu menu;
private JButton button;
private OpenAction(JPopupMenu menu, JButton button) {
this.menu = menu;
this.button = button;
}
@Override
public void actionPerformed(ActionEvent e) {
menu.show(button, 0, button.getHeight());
}
}
}
問題の素晴らしい解決策) – Denis
- 1. Atlassian Jiraのような複数選択、完全コンボボックスの作成方法
- 2. GWTコンボボックス複数選択
- 3. コンボボックスで複数の項目を選択する方法
- 4. GTKコンボボックスで複数の項目を選択する方法
- 5. gwtコンボボックスで複数選択を許可する方法
- 6. 複数の選択肢を選択できるメニューを作成する方法
- 7. Firebirdで複数の選択クエリを作成する方法
- 8. 複数選択コンボボックスの表示テキストsilverlight
- 9. 単一のコンボボックス選択から複数選択された値
- 10. 複数選択肢の作成方法IBM Watsonダイアログ
- 11. 複数の単一選択を避け、NHibernateで複数選択を作成する方法
- 12. 複数選択値をコンボボックスからグリッドパネルextjsに表示する方法4
- 13. Python:複数選択クイズの作成
- 14. コンボボックスの選択指数は
- 15. 選択したチェックボックスごとに複数のレコードセットを作成する方法
- 16. 複数選択フォームを作成
- 17. Excelで複数選択リストを作成
- 18. ロータススクリプト - 複数選択リストボックスで複数の値をプログラムで選択する方法
- 19. IDの複数の選択でREST APIエンドポイントを作成する方法
- 20. 選択から複数の段落を選択する方法
- 21. WCF REST - 無数の作成方法 - 選択方法は?
- 22. コンボボックスの選択
- 23. 複数のコンボボックス選択(Access、VBA)に基づくレポートを開く
- 24. コンボボックスで複数の選択肢があるJqueryオートコンプリート
- 25. クイズ複数の選択肢を無作為化する方法
- 26. 選択したオプションを複数選択する方法
- 27. 複数を選択:選択/解除する方法(JavaScript)
- 28. QueryBuilder:副選択句の作成方法
- 29. 複数のコンボボックスと特定の選択値を持つcount div
- 30. リンクされたSharePointテーブルのコンボボックスで複数の値を選択
は、あなたの答えです:http://stackoverflow.com/ a/2860376/32090 –
これには[JList](http://docs.oracle.com/javase/6/docs/api/javax/swing/JList.html)を使用することをお勧めします。 – flash
@Andrew Thompson:良いアドバイス:) – manhnt