繁体   English   中英

单击确认对话框的确定​​按钮后如何返回到摆动框架

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM