私はマルチセレクションのコンボボックスを作成する必要がありますか?複数選択によるコンボボックスの作成方法
答えて
(複数選択して、リストのような)カスタムコンボボックスのポップアップコンテンツを作成すると、いくつかの基本的な問題があります。
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. GTKコンボボックスで複数の項目を選択する方法
- 3. Firebirdで複数の選択クエリを作成する方法
- 4. 複数選択コンボボックスの表示テキストsilverlight
- 5. 複数選択肢の作成方法IBM Watsonダイアログ
- 6. 複数の単一選択を避け、NHibernateで複数選択を作成する方法
- 7. 複数選択値をコンボボックスからグリッドパネルextjsに表示する方法4
- 8. 選択したチェックボックスごとに複数のレコードセットを作成する方法
- 9. コンボボックスの選択指数は
- 10. WCF REST - 無数の作成方法 - 選択方法は?
- 11. Winforms:一意の選択肢を持つ複数のコンボボックス?
- 12. laravel 5にコンボボックスの選択値を設定する方法は?
- 13. コンボボックスの選択に応じてUIを変更する方法
- 14. jtreeプログラムによる複数選択
- 15. 第1コンボボックス(g:選択)に基づいて第2コンボボックス(g:選択)値を入力する方法は?
- 16. WPFでユーザーコントロールのようにコンボボックスを作成する方法
- 17. jquerymobileで複数の選択メニューにイベントをバインドする方法
- 18. コンボボックス選択項目
- 19. コンボボックスの選択項目のIDを取得する方法
- 20. 複数選択
- 21. 複数選択
- 22. コンボボックス選択値にビューモデルのcaliburn.microバインディングを行う方法?
- 23. Struts2。 1つの変数でコンボボックスのオプションを選択する方法
- 24. 手動でC#.Netのコンボボックスを選択する方法
- 25. コンボボックスの「選択項目」VB.Netをクリアする方法
- 26. DataGridviewのコンボボックスでデータを入力して選択する方法
- 27. Android:複数の選択肢を持つポップアップを作成
- 28. コンボボックス選択時にフレームを動的に作成する(&ボタンをクリック)
- 29. Struts複数選択ボックスの選択
- 30. ラジオグループ内で複数選択を無効にする方法extjs
は、あなたの答えです:http://stackoverflow.com/ a/2860376/32090 –
これには[JList](http://docs.oracle.com/javase/6/docs/api/javax/swing/JList.html)を使用することをお勧めします。 – flash
@Andrew Thompson:良いアドバイス:) – manhnt