2016-04-26 8 views
0

私は3つの選択肢をユーザに与え、それらをクリックして返すメソッドを作成しています。今すぐメソッドが動作します。オプションの1つをクリックして、閉じるボタンをクリックすると、最後にクリックした私は、誰もがこれで私を助けるか、それが非常に高く評価されるだろう、より良い解決策を提案することができた場合は、選択肢の一つにJButtonを使用してJDialogを閉じる方法

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()メソッド内にあります。

関連する問題