2012-01-17 2 views
4

오브젝트와 실행중인 Gui가있는 arraylist가 있습니다. 작은 프레임이나 상자 또는 arraylist에서 객체를 표시하는 것과 같은 것을 팝업하는 방법을 찾고 있습니다. 이제 사용자는 하나 이상의 항목을 선택하여 반환 할 수 있어야합니다.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 :-) { "ham", "spam", "yam"} :-) – mKorbel

+0

이것은 정확히 내가 원하는 것입니다.) ... thx – user1140737

+0

간단하고 명확한 대답에 대해 ! 나는 이것을하는 방법을 알아 내려고 노력하면서 2 시간 동안 주위에 밴딩하고 있었다. 나는 처음으로 부분적으로 작동하는 버전을 얼마나 복잡하게 만들었는지에 대해 두려워하고있다. –