生成了一个非模态对话框,提示用户打开一个新窗口。该框可以通过两种方式打开,要么直接从我正在编写的框架的文件菜单中打开,要么通过面板插入的框架间接打开。
当我直接通过文件菜单调用时,对话框就会出现我想要的焦点。但是当我让框架间接地打开对话框时,它就没有焦点了。
打开对话框的两种方法之间似乎没有区别,在这两种情况下都调用了load函数,直到5个方法调用之后才打开对话框。在这两种情况下,生成对话框的框架在生成对话框时实现。我试过在使对话框可见后调用requestFocus,但它似乎没有做任何事情。
有什么建议为什么对话框不会有焦点,或者我如何给它焦点作为一个独立的窗口从窗口,通常有焦点?
在某些情况下很难将Focus设置为这里所演示的预期的顶级容器,但是要获得出色的解决方案,最好查看camickr的Dialog Focus
创建对话框时,尝试将主GUI设置为对话框的父界面。
在第一种情况下,当你点击菜单时,它会自动将主GUI设置为对话框的父界面,但在第二种情况下不会。
所以确保当你创建对话框时,你总是将主GUI/窗口设置为父窗口。