gpt4 book ai didi

java - JFrame.setVisible(false) 和 Robot.createScreenCapture 时序

转载 作者:行者123 更新时间:2023-11-30 04:53:59 27 4
gpt4 key购买 nike

我正在 try catch 屏幕而不包括我的应用程序窗口。为此,我首先调用 setVisible(false),然后调用 createScreenCapture 方法,最后调用 setVisible(true)。但这不起作用,我仍然在屏幕截图中看到我的应用程序窗口。如果我添加 sleep 调用,这似乎可以解决问题,但我知道这是不好的做法。正确的做法是什么?

代码:

setVisible(false);
BufferedImage screen = robot.createScreenCapture(rectScreenSize);
setVisible(true);

最佳答案

您是否尝试过使用 SwingUtilities.invokeLater() 并在作为参数传递的可运行对象内部运行捕获?我的猜测是,为删除应用程序而执行的重绘是在 AWT-EventQueue 中的当前事件结束后立即执行的,因此立即调用该调用仍会捕获您的窗口。通过 invokeLater 在延迟事件中调用 createCapture 应该可以解决此问题。

关于java - JFrame.setVisible(false) 和 Robot.createScreenCapture 时序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9166543/

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