2012-11-07 5 views
0

나는 GUI를 예를 내가 GUI 생성하는 실행 코드에서 반환받을 걸려 다음 (ChatPopUp 코드가자바 GUI가 반환 항목

JFrame frame = new JFrame(); 
frame.getContentPane().add(new ChatPopup()); 
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); 
frame.pack(); 
frame.setVisible(true); 

내 GUI입니다 같이

public class ChatPopup extends javax.swing.JPanel { 
private JButton cancelButton; 
private JTextField textFieldchatRoomName; 
private JLabel jLabel1; 
private JButton okButton; 

public ChatPopup() { 
    super(); 

    initGUI(); 
} 

private void initGUI() { 
    try { 
     this.setPreferredSize(new java.awt.Dimension(294, 85)); 
     { 
      jLabel1 = new JLabel(); 
      this.add(jLabel1); 
      jLabel1.setText("Please enter the new chat room name:"); 
     } 
     { 
      textFieldchatRoomName = new JTextField(); 
      this.add(textFieldchatRoomName); 
      textFieldchatRoomName.setPreferredSize(new java.awt.Dimension(263, 22)); 
     } 
     { 
      cancelButton = new JButton(); 
      this.add(cancelButton); 
      cancelButton.setText("Cancel"); 
      cancelButton.setPreferredSize(new java.awt.Dimension(84, 22)); 
      cancelButton.addActionListener(new ActionListener() { 
       public void actionPerformed(ActionEvent evt) { 
        System.out.println("Cancel PRESSED"); 
       } 
      }); 
     } 
     { 
      okButton = new JButton(); 
      this.add(okButton); 
      okButton.setText("Ok"); 
      okButton.setPreferredSize(new java.awt.Dimension(60, 22)); 
      okButton.addActionListener(new ActionListener() { 
       public void actionPerformed(ActionEvent evt) { 
        System.out.println("OK PRESSED"); 
       } 
      }); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

} 

이것은 텍스트 필드와 하나의 "Ok"하나의 "Chancel"두 개의 버튼이있는 매우 간단한 GUI입니다. "Ok"를 클릭하면 GUI 인스턴스가 원래 실행되는 클래스로 textField 값을 보내고 싶습니다.

어떤 아이디어가 이렇게하는 방법 ??

답변

0

게시 한 JPanel은 모달 JDialog 콘텐츠 창에 추가해야합니다. 같은 클래스에서 사용자가 입력 한 값을 텍스트 필드에 반환하는 몇 가지 메서드를 제공 할 수 있습니다.

원래 창에서 대화 상자를 엽니 다.

SomeDialog dialog = new SomeDialog(parent); 
dialog.setVisible(true); 

setVisible() 이후의 코드는 모달 대화 상자가 닫힌 후에 만 ​​실행됩니다. 이 시점에서 텍스트 필드 값을 가져 오기 위해 위에서 언급 한 메서드를 호출 할 수 있습니다.