gpt4 book ai didi

java - 在诊断 Swing 中 alt-tab 上的绘画问题时需要帮助

转载 作者:可可西里 更新时间:2023-11-01 11:39:00 24 4
gpt4 key购买 nike

我已经研究了几个小时了,但没有找到任何可以指导我的方法。我有一个 Windows Swing GUI 程序,它在 SwingWorker 中执行一些后台处理。这也使用进度对话框让用户知道后台处理需要多长时间。

该系统的最初设计者决定禁用用户界面的鼠标和键盘输入,但进度对话框上的“取消”按钮除外。他们通过使用忽略所有鼠标和键盘事件的玻璃板来做到这一点。

实际问题是,如果用户使用 alt-tabs 或屏幕保护程序,则玻璃面板后面的用户界面永远不会重新绘制。进度对话框重绘,但这是由于 SwingWorker 定期调用重绘来更新进度。

我想知道下一步要去哪里的任何建议。我无法在 Java 中的 alt-tab 重绘上找到任何内容。也许进度对话框根据定义是模态的,防止 EDT 重新绘制?或者玻璃板可能会阻止“隐藏”组件的重绘?

谢谢,瑞安

最佳答案

文章How to Write Window Listeners涵盖了这个主题。使用这个 example ,您应该在每个 alt-tab 事件上看到成对的窗口事件,类似于这些:

java.awt.event.WindowEvent[WINDOW_LOST_FOCUS,opposite=null,oldState=0,newState=0] on Onejava.awt.event.WindowEvent[WINDOW_DEACTIVATED,opposite=null,oldState=0,newState=0] on Onejava.awt.event.WindowEvent[WINDOW_ACTIVATED,opposite=null,oldState=0,newState=0] on Onejava.awt.event.WindowEvent[WINDOW_GAINED_FOCUS,opposite=null,oldState=0,newState=0] on One

关于java - 在诊断 Swing 中 alt-tab 上的绘画问题时需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4653754/

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