2016-04-26 5 views
0

Я делаю метод, который дает пользователю три варианта и возвращает тот, который они нажимают, прямо сейчас, когда метод работает, я нажимаю один из параметров, и если я нажму кнопку закрытия, он вернет последний щелкнул. Я хочу сделать так, что диалог закрывается при нажатии одной из опцийКак закрыть JDialog через JButtons

public E drawThreeForDecision() 
{ 
    ArrayList<E> c = new ArrayList<E>(); 
    Component[] options = new Component[3]; 
    for (int iii = 0; iii < 3; iii++) 
    { 
     final int loop = iii; 
     c.add((E) drawCard()); 
     JButton button = new JButton(new ImageIcon(((GameEntity) c.get(iii)).getEntityImage())); 
     button.addActionListener(new ActionListener() 
     { 
      @Override 
      public void actionPerformed(ActionEvent arg0) 
      { 

      } 
     }); 
     options[iii] = button; 
    } 
    JOptionPane pane = new JOptionPane("Please select a card", JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION, null, options, options[0]); 
    JDialog dialog = pane.createDialog(null, "DECISION TIME!"); 
    dialog.setVisible(true);; 
    if (pane.getValue() instanceof Integer) 
     return (E) pane.getValue(); 
    return c.get(0); 
} 

Если кто-нибудь может мне помочь с этим или предложить лучшее решение было бы весьма признателен!

+0

См. [Этот ответ] (http://stackoverflow.com/a/14476214/878469). – predi

ответ

0

Попробуйте следующее: dialog.setModal (true); dialog.setVisible (true);

+0

AH! Вы дали мне мозговую волну, если я объявлю объект JOptionPane и JDialog в начале класса, я могу вызвать метод dispose Спасибо! – BobbyBorn2L8

0

dialog.dispose(); внутри actionPerformed() способ.

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

  • Нет связанных вопросов^_^