-1
First, Last 및 LastFirst라는 세 개의 텍스트 필드가있는 JDialog가 있다고 가정합니다. LastFirst가 포커스를 받으면 처음에는 &의 연결로 설정되지만, 처음에는 &이 비어 있지 않은 경우에만 연결됩니다. 내 예제의 적절한 코드는 작동하지 않습니다. 무엇이 누락 되었습니까?확인 된 다른 필드를 기반으로 필드 설정
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.JOptionPane;
public class FieldValidatedSetting extends javax.swing.JFrame {
private javax.swing.JTextField txtFirst;
private javax.swing.JTextField txtLast;
private javax.swing.JTextField txtLastFirst;
//
//This is supposed to concatenate Last & First and set LastFirst.
// Empty First or Last fields should result in a message dialog
// and return for user correction. Problem is it issues the message twice!
// Please excuse the crummy layout./
// Constructor
private void txtLastFirstFocusGained(java.awt.event.FocusEvent evt)
if(txtLast.getText().isEmpty() || txtFirst.getText().isEmpty()){
JOptionPane.showMessageDialog(null, "You must enter First & Last");
txtFirst.requestFocusInWindow();
} else{
txtLastFirst.setText(txtLast.getText() + txtFirst.getText());
}
}
public FieldValidatedSetting() {
txtFirst = new javax.swing.JTextField();
txtLast = new javax.swing.JTextField();
txtLastFirst = new javax.swing.JTextField();
txtLastFirst.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
txtLastFirstFocusGained(evt);
}
});
Container pane = getContentPane();
pane.setLayout(new GridLayout(1, 3));
pane.add(txtFirst);
pane.add(txtLast);
pane.add(txtLastFirst);
pack();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FieldValidatedSetting().setVisible(true);
}
});
}
}
''나는 무엇을 놓치고 있습니까? '- 유효한 [mcve]라는 작고도 완벽한 프로그램을 작성하여 게시하면 문제를 증명하는 데 필요한 코드 만 있고, 복사하여 붙여 넣을 수 있습니다 , 수정없이 컴파일하고 실행하면 잘못된 일을 완전히 이해하는 데 도움이됩니다. 이 코드는 오프 사이트 리소스에 대한 링크가 아닌 코드 형식의 텍스트로 게시됩니다. –
[FocusListener]와 [PropertyChangeListener]를 [example] (http://stackoverflow.com/a/8703807/230513)에 사용할 수 있습니다. – trashgod