2012-06-11 4 views
1

여러 개의 팝업 창을 사용하는 대형 Java 응용 프로그램을 빌드하고 있습니다. 이러한 창 중 일부는 동시에 표시 할 수 있어야합니다 (예 : Google 어스와 웹캠 피드의 팝업을 별도로 표시 할 수 있어야 함)하지만 일부는 한 번에 하나씩 만 표시 할 수 있습니다 (예 : 오류 메시지) . 첫 번째 종류의 팝업, 웹캠 종류가 정상적으로 작동합니다. 그러나 오류 메시지 팝업은 웹캠 유형의 팝업 (즉, 새 .class 파일을 만들고 여러 개의 오류 팝업이있을 수 있음)과 같은 역할을합니다. 이 문제를 어떻게 해결할 수 있습니까? 새 오류 클래스를 만들어야합니까?자바 팝업에서 JTextField 재사용

또한 웹캠 유형 팝업 중 하나에서 사용자 이름과 비밀번호를 읽는 JTextField가 있습니다. 이 로그인 팝업은 정상적으로 작동하지만 한 번 사용하고 닫은 다음 다시 사용하면 JTextFields에서 getText()를 수행하면 빈 문자열이 반환됩니다. 이 문제는 위의 문제와 관련이 있다고 생각하지만 확실하지 않습니다.

passwordAction.addActionListener(new ActionListener() { 
      JFrame pwPop=new JFrame("Log in"); 
      JTextField unameField; 
      JTextField pwField; 
      public void actionPerformed(ActionEvent arg0) { 
       pwPop.setBounds(250,200,300,150); 
       JPanel pwPopPanel=new JPanel(new FlowLayout(FlowLayout.LEFT,10,10)); 
       pwPop.add(pwPopPanel); 
       unameField=new JTextField(); 
       pwField=new JTextField(); 
       JButton logInButton=new JButton("Log in"); 
       JButton cancelButton=new JButton("Cancel"); 
       JLabel logInText=new JLabel("Username:"); 
       JLabel passwordText=new JLabel("Password:"); 
       JPanel buttonPanel=new JPanel(new FlowLayout(FlowLayout.CENTER,5,0)); 
       pwPopPanel.add(logInText); 
       pwPopPanel.add(unameField); 
       pwPopPanel.add(passwordText); 
       pwPopPanel.add(pwField); 
       buttonPanel.add(logInButton); 
       buttonPanel.add(cancelButton); 
       pwPopPanel.add(buttonPanel); 
       logInButton.addActionListener(new ActionListener() { 
        JFrame logErrorFrame; 
        public void actionPerformed(ActionEvent arg0) { 
         if (doLogIn(unameField.getText(), pwField.getText(), "")) { 
          unameField.setText(null); 
          pwField.setText(null); 
          pwPop.setVisible(false); 
         } 
        } 
       }); 
       pwPop.setVisible(true); 
      } 
     }); 
+0

당신은 JOptionPane.showMessageDialog''사용할 수 또는 스레드는 문제를 차단? – purtip31

+0

예. 저는 그것을 사용할 수 있다고 믿습니다. 나는 그것이 존재한다는 것을 인식하지 못했습니다. 고마워요! 내 로그인 팝업에도 올바르게 적용됩니다. 맞습니까? –

+1

* "내 로그인 팝업에도 잘 작동합니까?"* 물론, [이 답변] (http://stackoverflow.com/questions/10773132/how-to-unfocus-a-jtextfield/10773412)을 참조하십시오. # 10773412). –

답변