여러 개의 팝업 창을 사용하는 대형 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);
}
});
당신은 JOptionPane.showMessageDialog''사용할 수 또는 스레드는 문제를 차단? – purtip31
예. 저는 그것을 사용할 수 있다고 믿습니다. 나는 그것이 존재한다는 것을 인식하지 못했습니다. 고마워요! 내 로그인 팝업에도 올바르게 적용됩니다. 맞습니까? –
* "내 로그인 팝업에도 잘 작동합니까?"* 물론, [이 답변] (http://stackoverflow.com/questions/10773132/how-to-unfocus-a-jtextfield/10773412)을 참조하십시오. # 10773412). –