gpt4 book ai didi

java - 如何用自己的实现替换 AWT EventQueue

转载 作者:IT老高 更新时间:2023-10-28 20:39:42 24 4
gpt4 key购买 nike

为了调试 Swing 应用程序中的奇怪行为,我想用我自己的实现替换 AWT EventQueue。

这可能吗?怎么样?

以防万一您有兴趣:

  • 实现将是普通事件队列的简单包装器,进行一些日志记录。

  • 我想调试的问题是 TableCellEditor,它在一个小演示应用程序中运行良好,但是当放入实际应用程序时,由于某些事件,stopCellEditing 会立即被调用。我想访问该事件以了解它的来源。

最佳答案

EventQueue 有一个名为 push() 的方法,可以完全按照您的意愿进行操作。这是一个小演示:

public class QueueTest {
public static void main(String[] args) throws InterruptedException, InvocationTargetException {
EventQueue eventQueue = Toolkit.getDefaultToolkit().getSystemEventQueue();
eventQueue.push(new MyEventQueue());

EventQueue.invokeAndWait(new Runnable() {
public void run() {
System.out.println("Run");
}
});
}

private static class MyEventQueue extends EventQueue {
public void postEvent(AWTEvent theEvent) {
System.out.println("Event Posted");
super.postEvent(theEvent);
}
}
}

关于java - 如何用自己的实现替换 AWT EventQueue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3158254/

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