2012-01-17 12 views
4

私はオブジェクトと実行中のGuiを持つarraylistを持っています。小さなフレームやボックスをポップアップする方法や、arraylistのオブジェクトを表示する方法を探しています。ユーザは、1つ以上の項目を選択して返すことができるようになりました。JOptionPaneからの複数の選択

私はすでにoptionpaneを持っていますが、私はちょうど多分ポップアップリストが出て役立つだろう一つのオブジェクト

Object[] possibilities = lr.declarationList.toArray(); 
    String s = (String)JOptionPane.showInputDialog(
         gui.getFrame(), 
         "Choose Target Nodes", 
         "Customized Dialog", 
         JOptionPane.PLAIN_MESSAGE, 
         null, 
         possibilities, 
         null); 

を選択することができます。

+0

Javaチュートリアルの[ダイアログの使い方](http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html)から対応するサンプルを実行しようとしましたか? [SSCCE](http://sscce.org)をここに配置します。ちなみに、単純な配列({"ham"、 "spam"、 "yam"})に可能性を設定しようとしましたか? – MockerTim

答えて

9

例えば、その要素がリストから供給されているJListコンポーネント引数でJOptionPane.showMessageDialog(...)を使用してみてください:

JList list = new JList(new String[] {"foo", "bar", "gah"}); 
JOptionPane.showMessageDialog(
    null, list, "Multi-Select Example", JOptionPane.PLAIN_MESSAGE); 
System.out.println(Arrays.toString(list.getSelectedIndices())); 

注意をメッセージ・オブジェクト自体に多くのレイアウトのアイテムが必要な場合は、あなたがにそれらのすべてをパックすることができJPanelを呼び出し、そのコンポーネントをメッセージ引数として使用します。

+0

多分JComboBox +1 :-) {"ハム"、 "スパム"、 "ヤム"} :-) – mKorbel

+0

これはまさに私が探していたものでした;)... thx – user1140737

+0

あなたのシンプルで明確な答え!私はこれを行う方法を理解しようとしている2時間の周りにバンディングしてきました。私が最初に部分的に作業していたバージョンをどれくらい複雑にすることができたのか、私は恐ろしいです... –