JDialog盒子没有得到关注

时间:2011-07-08 14:47:14

标签: java swing user-interface focus jdialog

我生成了一个无模式对话框,提示用户打开一个新窗口。可以通过两种方式打开该框,可以直接从我正在编写的框架的文件菜单中打开,也可以通过我的面板插入的框架间接打开。

当我通过文件菜单直接拨打电话时,对话框会根据我的需要提供焦点。但是当我让框架间接打开对话框时,它没有应有的焦点。

在打开对话框的两种方法之间似乎没有区别,在这两种情况下都会调用一个加载函数,并且直到稍后打开对话框时才会调用5个方法。在这两种情况下,生成对话框的框架在生成框时实现。我已经尝试在使对话框可见后调用requestFocus,但它似乎没有做任何事情。

为什么对话框没有焦点的任何建议,或者我如何将焦点作为一个单独的窗口从通常具有焦点的窗口?

2 个答案:

答案 0 :(得分:3)

在某些情况下,很难将焦点设置为预期的top-level container here,但是对于优秀的解决方法,请更好地了解camickr的Dialog Focus

答案 1 :(得分:2)

创建对话框时,尝试将主GUI设置为对话框的父级。

在第一种情况下,当您从菜单中单击时,它会自动将主GUI设置为对话框的父级,但在第二种情况下它不会。

因此,请确保在创建对话框时,始终将主GUI /窗口设置为父级。

它应该帮助大多数时间。