2012-04-05 15 views
0

actionListenerに問題があります。私はボタンをクリックすると、actionListenerは応答しません。JButtonがactionListenerに応答しない

これは私のコードです:

private void showInfoNewUML() {   
    Dimension buttonsSize = new Dimension(60, 25); 
    Dimension programSize = new Dimension(1200, 700); 
    final JDialog dialogWindow = new JDialog(this, "Erase actual UML diagram" 
      + " with his files", true);   
    JTextArea descDialogWindow = new JTextArea("Do you really erase actual\n" 
      + "UML diagram with his files? "); 
    descDialogWindow.setEditable(false); 
    descDialogWindow.setBackground(new Color(220, 220, 220)); 
    descDialogWindow.setBorder(null); 
    dialogWindow.getContentPane().setBackground(new Color(220, 220, 220)); 
    dialogWindow.setDefaultCloseOperation(DISPOSE_ON_CLOSE); 
    dialogWindow.setModal(true); 
    dialogWindow.setResizable(false); 
    dialogWindow.setLayout(new FlowLayout()); 
    dialogWindow.setSize(310, 100); 
    dialogWindow.setLocation((int) programSize.getWidth()/2, 
      (int) programSize.getHeight()/2); 
    JButton buttonYes = new JButton("Yes"); 
    JButton buttonNo = new JButton("No"); 
    buttonYes.setPreferredSize(buttonsSize); 
    buttonNo.setPreferredSize(buttonsSize); 
    dialogWindow.add(descDialogWindow); 
    dialogWindow.add(buttonYes); 
    dialogWindow.add(buttonNo); 
    dialogWindow.setVisible(true); 

    buttonYes.addActionListener(new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      buttonAnoActionPerformed(e); 
     } 

     private void buttonAnoActionPerformed(ActionEvent e) { 
      dialogWindow.setVisible(false); 
     } 
    }); 

    buttonNo.addActionListener(new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      buttonNeActionPerformed(e); 
     } 

     private void buttonNeActionPerformed(ActionEvent e) { 
      dialogWindow.setVisible(false); 
     } 
    }); 
} 

私はボタンをクリックした後、このダイアログを閉じたいと思います。十字で右上のボタンをクリックすると、ダイアログウィンドウが閉じます。

この問題のお手伝いをありがとうございます。

+1

[SSCCE](http://sscce.org)を作成することで、問題を理解するのに役立ちます。 – Jeffrey

+1

''あなたは実際に実際のファイルを消去しますか\ n " +" UMLダイアグラムは彼のファイルでですか? "' JOptionPane.showConfirmDialog(...) '](http://docs.oracle .com/javase/7/docs/api/javax/swing/JOptionPane.html#showConfirmDialog%28java.awt.Component、%20java.lang.Object%29)(およびオーバーロードされたバリアント)。 –

+0

ええ、私はしたいと思います。残念ながら、私はshowConfirmDialog Yes [チェコ語 "Ano"]と[No [czech "Ne"]に対応して調整可能なチェコ語のアプリケーションを作成しています。これが私自身のダイアログを作成する理由です。 – avalagne

答えて

2

の前に追加してみてください。dialogWindow.setVisible(true);です。

ダイアログがモーダルなので、は、ダイアログが閉じられてから便利なリスナーを登録するまで、dialogWindow.setVisible(true);にブロックされます。

+0

聖なるもの**ありがとうございます!私はどこか別の問題を探していました。 – avalagne