gpt4 book ai didi

java - 如何检测用户是否单击窗口标题栏或 Java 中窗口边框的任何其他部分

转载 作者:行者123 更新时间:2023-11-29 08:36:26 25 4
gpt4 key购买 nike

我已经使用 Swing Popup 类实现了一个弹出式数字小键盘。我有一个与 JTextField 关联的按钮,当用户单击它时打开数字小键盘,然后当/如果 JTextField 失去焦点时 Popup 关闭。它通常运行良好,除了偶尔我会在 Popup 隐藏后得到“遗留”的工件。有时,伪像是 Popup 中显示的组件的图像,但更常见的是,它是某种“黑洞”,它掩盖了 Popup 所在屏幕同一区域中显示的任何其他内容,这只能通过关闭应用程序和 JVM 来补救。

问题很难重现,但当用户在弹出窗口打开时操作基本窗口(例如移动或调整其大小)时,它似乎会出现。我的想法是在发生类似情况时简单地隐藏 Popup,我可以结合使用 WindowListener 和 ComponentListener。但是,我想更进一步,一旦用户点击窗口标题栏或其框架的另一部分,甚至在他们移动、调整大小或图标化之前,就隐藏弹出窗口。 JComboBox 弹出窗口实际上就是这样工作的。但是,我一直找不到任何一种机制可以通知我用户单击了窗口标题栏。我查看了 JComboBox 和相关代码,但也无法从中弄清楚它是如何发挥这种魔力的。我可以使用任何其他类型的监听器来获取此类通知吗?

最佳答案

I have implemented a pop-up numeric keypad using the Swing Popup class.

我们会在您发布问题时发布您的代码来演示实现和问题。

我不知道你在做什么,但你可以使用 JPopupMenu。当您单击没有 FocusListener 或任何其他逻辑的框架标题栏时,这将关闭。

关于java - 如何检测用户是否单击窗口标题栏或 Java 中窗口边框的任何其他部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43810491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com