[英]how to return to swing frame after clicking ok button of confirm dialog
选择一个复选框,并检查与之相关的文本字段是否用输入填充
chckbxDictionary = new JCheckBox();
txtDictionaryStartPage = new JTextField();
JButton btnSubmit = new JButton("Submit");
btnSubmit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(chckbxDictionary.isSelected()){
if(txtDictionaryStartPage.getText().equals("")){
int type=JOptionPane.showConfirmDialog(null, "enter start page", "", JOptionPane.OK_CANCEL_OPTION);
if(type==JOptionPane.OK_OPTION){
//if ok return to frame and focus txtDictionaryStartPage for user input
}
}
}
}
}
在确认对话框上单击“确定”按钮后,我想返回到jframe并聚焦所需的文本字段,以供用户输入输入内容并等待输入输入。
根据JavaDoc
,假设它们处于同一类中:
公共布尔requestFocusInWindow()
请求此Component获得输入焦点。 有关此方法的完整说明,请参考Component.requestFocusInWindow()。 如果您想获得有关焦点的更多信息,请参阅《 Java教程》中的“如何使用焦点子系统”部分。
因此,您可以执行以下操作:
if(type==JOptionPane.OK_OPTION){
txtDictionaryStartPage.requestFocusOnWindow();
}
如果他们属于同一班级,则可以执行以下操作:
chckbxDictionary = new JCheckBox();
txtDictionaryStartPage = new JTextField();
JButton btnSubmit = new JButton("Submit");
btnSubmit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(chckbxDictionary.isSelected()){
if(txtDictionaryStartPage.getText().equals("")){
int type=JOptionPane.showConfirmDialog(null, "enter start page", "", JOptionPane.OK_CANCEL_OPTION);
if(type==JOptionPane.OK_OPTION){
txtDictionaryStartPage.requestFocusInWindow();
frame.setVisible(true);
}
}
}
}
}
我不确定frame.setVisible(true);
是必需的,但请尝试。 如果将其放在代码中,则无论如何都不会受到伤害。
showConfirmDialog
第一个参数应从null
更改为btnSubmit
int type=JOptionPane.showConfirmDialog(btnSubmit, "enter start page", "", JOptionPane.OK_CANCEL_OPTION);
if(type==JOptionPane.OK_OPTION){
txtDictionaryStartPage.requestFocusOnWindow();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.