为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

四季花海 2019-08-28 13:36:18
如何用自己的实现替换AWT EventQueue 为了调试Swing应用程序中的奇怪行为,我想用我自己的实现替换AWT EventQueue。这可能吗?怎么样?万一你有兴趣:实现将是一个围绕正常Eventqueue的简单包装器,进行一些日志记录。我想要调试的问题是一个TableCellEditor,它可以在一个小的演示应用程序中正常工作,但是当放入真正的应用程序时,由于某些事件,会立即调用stopCellEditing。我希望能够访问该活动,以便了解它的来源。
查看完整描述

3 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

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);
        }
    }}


查看完整回答
反对 回复 2019-08-28
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

这可以。扩展EventQueue将为您提供所有AWTEvents的处理。

您将如何处理所有事件。活动清单如下。

[AWTEvent,BeanContextEvent,CaretEvent,ChangeEvent,ConnectionEvent,DragGestureEvent,DragSourceEvent,DropTargetEvent,FlavorEvent,HandshakeCompletedEvent,HyperlinkEvent,LineEvent,ListDataEvent,ListSelectionEvent,MenuEvent,NamingEvent,NamingExceptionEvent,NodeChangeEvent,Notification,PopupMenuEvent,PreferenceChangeEvent,PrintEvent,PropertyChangeEvent,RowSetEvent,RowSorterEvent ,SSLSessionBindingEvent,StatementEvent,TableColumnModelEvent,TableModelEvent,TreeExpansionEvent,TreeModelEvent,TreeSelectionEvent,UndoableEditEvent,UnsolicitedNotificationEvent]


查看完整回答
反对 回复 2019-08-28
  • 3 回答
  • 0 关注
  • 509 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信