2012-01-17 89 views
4

我有一個與對象和正在運行的Gui的數組列表。我正在尋找一種方法來彈出一個小框架或框或類似的東西,顯示陣列列表中的對象。用戶現在應該能夠選擇一個或多個項目,然後返回。JOptionPane中的多個選擇

我已經選項窗格,但我可以只選擇一個對象

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 2012-01-17 18:35:42

回答

9

嘗試使用JOptionPane.showMessageDialog(...)有JList組件參數,其元素從列表貨源,例如:

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 :-) {「ham」,「spam」,「yam」} :-) – mKorbel 2012-01-17 18:59:13

+0

這就是我正在尋找的;)... thx – user1140737 2012-01-18 14:52:35

+0

非常感謝您的簡單,明確的答案!我一直在試圖弄清楚如何做到這一點已經花了兩個小時。我很驚訝於我設法制作了我的第一個部分工作版本。 – 2014-07-18 19:37:14