gpt4 book ai didi

java - 有没有办法从自己的方法处理 AWT 队列?

转载 作者:行者123 更新时间:2023-12-01 05:48:11 25 4
gpt4 key购买 nike

我看到有人提出了一个问题,他无法/不愿意更改长时间运行的方法以返回 Future<Something>而不仅仅是<Something> 。不幸的是,该方法也从 AWT-Thread 调用,后果已知。我告诉过他,他在胡说八道,但也许有可能。他可以从他的方法内部启动一个 SwingWorker(或其他任何东西),并在等待 AWT 队列完成的同时处理它。

我的意思是类似

public Something aLongRunningMethodCalledFromTheAwtThread() {
FutureTask<Something> future = new FutureTask<Something>(...);
EventQueue eventQueue = Toolkit.getEventQueue();
while (true) {
if (future.isDone()) return future.get();
AWTEvent event = eventQueue.getCurrentEvent();
if (event==null) {
waitForAWhile();
} else {
eventQueue.pop(); // <---- is protected
process(event); // <---- BUT HOW???
}
}
}

AFAIK,这样的事情在其他框架中都可以完成,我想知道这在 Swing/AWT 中是否也可能?

最佳答案

当正确的解决方案已经存在时,实现正确的解决方案是没有意义的。该方法需要作为单独的线程执行。期间。

关于java - 有没有办法从自己的方法处理 AWT 队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5385333/

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