setEnabled()和requestFocusWindow()不起作用

时间:2015-12-14 20:56:16

标签: java swing jframe focus jinternalframe

所以我在线搜索并尝试了常用功能以关注窗口,但每当我点击退出按钮时,它都不会返回主JFrame。

当我删除this.setEnabled(true)时,它会这样做,但我真正想做的是在单击jButton9时禁用主JFrame并显示JInternalFrame。然后在单击“退出”按钮时关闭JInternalFrame。

我尝试了本网站上的说明http://www.coderanch.com/t/334157/GUI/java/JInternalFrame-Focus

这是我到目前为止所做的事情。我很感激任何帮助。

enter image description here

private void jButton9ActionPerformed(java.awt.event.ActionEvent evt)     {                                         

    AddTo_Assigned_Subjects_InternalFrame.setVisible(true);
    this.setEnabled(false);
    AddTo_Assigned_Subjects_InternalFrame.requestFocusInWindow();

}                                        

private void ExitActionPerformed(java.awt.event.ActionEvent evt) {                                     
    this.requestFocusInWindow();
    AddTo_Assigned_Subjects_InternalFrame.setVisible(false);
    AddTo_Assigned_Subjects_InternalFrame.dispose();


}              

"这"是我的主框架 " Add_To_Assigned_Subjects_InternalFrame"按住退出按钮。

感谢。

1 个答案:

答案 0 :(得分:0)

在requestFocusWindow()

上形成Javadoc

此方法不能用于将焦点所有者设置为无组件。改为使用KeyboardFocusManager.clearGlobalFocusOwner()。

此方法的焦点行为可以跨平台统一实现,因此强烈建议开发人员尽可能在requestFocus上使用此方法。依赖于requestFocus的代码可能在不同平台上表现出不同的焦点行为。