2012-04-05 4 views
0

actionListener에 문제가 있습니다. 나 자신 만의 간단한 대화 상자를 만들었는데, 여기에는 두 개의 JButton이 있습니다 - 예와 아니요. 버튼을 클릭하면 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

신성한 ** t. 감사합니다! 나는 다른 곳에서 문제를 찾고 있었다. – avalagne

관련 문제