【发布时间】:2021-06-10 20:32:15
【问题描述】:
我正在尝试寻找与窗口管理相关的错误的来源,特别是可能是 awt。但是,我对一般的窗口管理或 awt 几乎不熟悉,所以我什至确定我在寻找什么。我希望对术语或其他方面有一些一般性的指导,这可能有助于指导我朝着正确的方向前进。
在我正在开发的程序中,用户可以打开可以与之交互的窗口(即它们有文本输入框、下拉菜单等)和不能与之交互的窗口(即它们只显示对话框)。当用户打开一个“非交互式”窗口时,用户仍然可以使用底层程序。但是,当打开“交互式”窗口时,用户会被阻止使用底层程序,直到窗口关闭。此外,“交互式”窗口似乎将自己堆叠在“非交互式”窗口之上。也就是说,如果我打开一个“非交互式”窗口,然后再打开一个“交互式”窗口,“交互式”窗口会将自己置于“非交互式”窗口之上,并且不允许用户使用任何标题栏小部件。在这个程序中,这种行为并不总是可取的。
我认为这与聚焦有关,但我通读了this 文档,但运气不佳(这可能是因为我只是不知道我在寻找什么)。特别是,我注意到“VetoableChangeLister”的提及,它似乎没有出现在我正在使用的代码中的任何地方,以及方法“requestFocusInWindow”,它确实出现在我正在使用的代码中但没有出现在我能看到的任何与我的上述问题描述有关的方式。
上述问题是否与窗口聚焦有关?还是我在这里吠错了树?如果不出意外,甚至是一些基本术语,这样我至少可以智能地 Google 搜索。
【问题讨论】:
-
不确定您的问题是什么。也许:“模态”与“无模态”(或“非模态”)? docs.oracle.com/javase/tutorial/uiswing/misc/modality.html
-
我相信这可能正是我想要描述的,谢谢。
-
我怀疑@JohnnyMopp 已经发现了问题。如果没有,请发布minimal reproducible example 并“让代码说话”。好吧,反正大部分都是。
-
他有,我加个答案。
-
“他有” 提示:添加@JohnnyMopp(或任何重要的
@)以通知此人有新评论. “我会添加一个答案。” 不错!