2015-10-20 3 views
0

JOptionPaneКак получить доступ к выбранному параметру JOptionPane. - ява

Как я могу получить вход из вариантов, нажал на JOptionPane, а не кнопка Okay, но варианты я предоставил такие как Emerald, Autumn и т.д.

Вот мой код

public static ArrayList<String> Skins = new ArrayList<String>(); 

public static void skinJPanel() { 
    try { 
     String[] skins = {"Emerald", "Autumn", "Black Steel", "Blue Steel", "Creme Coffee", "Green Magic"}; 
     for (int i = 0; i <= 5; i++) { 
      Skins.add(skins[i]); 
     } 
     JPanel panel = new JPanel(); 
     panel.setSize(200, 200); 
     JList list = new JList(Skins.toArray()); 
     JScrollPane scrollpane = new JScrollPane(); 
     scrollpane = new JScrollPane(list); 
     panel.add(scrollpane); 
     scrollpane.getViewport().add(list); 
     String string = JOptionPane.showInputDialog(null, scrollpane, "Aftermath Skin Chooser", JOptionPane.PLAIN_MESSAGE); 
     System.out.println(string); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    Skins.clear(); 
} 
+0

Итак, я полагаю, вы не хотите ждать, пока пользователь нажмет [OK]/[Отменить], или просто хотите получить выбранное значение из 'JList'? – MadProgrammer

ответ

0

Чтобы получить выбранное значение после того как пользователь нажал [Хорошо], вероятно, вы должны сделать что-то больше похоже на ...

int result = JOptionPane.showConfirmDialog(null, scrollpane, "Aftermath Skin Chooser", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); 
if (result == JOptionPane.OK_OPTION) { 
    String value = (String) list.getSelectedValue(); 
    System.out.println(value); 
} 
+0

Работал абсолютно отлично, спасибо за то, что вы нашли время сейчас. Я знаю, что делать, когда сталкиваюсь с этой ситуацией снова :) –

+0

Рад, что это могло помочь;) ps- Как внешний вид;) – MadProgrammer

Смежные вопросы