当前位置: 首页 > 面试题库 >

如何在Swing中配置EDT?

张瀚漠
2023-03-14
问题内容

我有一个正在Swing中构建的应用程序。它具有可滚动和缩放的图表组件,可以平移和缩放它。整个过程很平滑,除了有时UI会暂停约750
ms,我不知道为什么。这种情况并非总是会发生-但有时应用程序中会发生某些事情,并且每6-8秒就会开始暂停一次。

很显然,EDT上有一些事件需要花费750毫秒左右的时间才能运行,这不应该发生。

我如何特别像这样配置EDT?我真正想做的是获取在每次事件在EDT上运行时输出到日志或System.out的信息以及事件所花费的总时间。有没有办法做到这一点?

还是有一些工具可以帮我实现这一目标,并为我提供在EDT上运行的所有内容的日志以及需要多长时间?

我想浏览一下该日志,查看花费很长时间的所有内容,然后找出问题所在。


问题答案:

创建一个这样的类:

public class TimedEventQueue extends EventQueue {
    @Override
    protected void dispatchEvent(AWTEvent event) {
        long startNano = System.nanoTime();
        super.dispatchEvent(event);
        long endNano = System.nanoTime();

        if (endNano - startNano > 50000000)
            System.out.println(((endNano - startNano) / 1000000)+"ms: "+event);
    }
}

然后将默认的EventQueue替换为自定义类:

Toolkit.getDefaultToolkit().getSystemEventQueue().push(new TimedEventQueue());


 类似资料:
  • 问题内容: 我想知道如何在Swing界面中调整Tab顺序。我找到了一个示例,它表明此方法可以解决问题,但似乎已弃用且不起作用。 注意:-下面的方法返回一个带有Argument名称的Combox对象。如果有人知道如何使用Netbeans IDE做到这一点,那就太好了。我在Eclipse WindowBuilder中找到了一种方法,但在Netbeans IDE中却找不到。谢谢。 问题答案: 您可以在容

  • 问题内容: 当我将struts.xml放入web-inf时显示错误......当我将src文件夹放入时,它工作正常。(在web- inf中为applicationcontext.xml) 当我将applicationcontext.xml放在src文件夹中时(在(src文件夹或src / resources)中为struts.xml).......这就是说无法在web-inf文件夹中找到appli

  • https://docs . JBoss . org/hibernate/ORM/5.2/javadocs/org/hibernate/interceptor . html说onPrepareStatement(字符串sql)不推荐使用。如果希望检查和修改SQL语句,请提供StatementInspector。 但是我不清楚如何在hibernate中在应用程序级别配置StatementInspec

  • 我在学习Spring Boot时遇到了一些编码问题;我想添加一个像Spring3.x那样的CharacterEncodingFilter。就像这样:

  • 我试图在我的应用程序中实现jpa 发展能力 所以,我的DataConfig看起来像这样: 但是,当我尝试启动应用程序时,会出现错误消息。制造战争- 已连接到服务器[2018-09-26 09:54:32631]工件未命名:正在部署工件,请稍候。。。2018年9月26日09:54:34.460警告[RMI TCP连接(3)-127.0.0.1]组织。阿帕奇。公猫dbcp。dbcp2。基本资源工厂。g

  • 我有一个使用以下方法的会话豆: 返回的CalculationResult无法映射到JSON,并出现以下异常: 如何在 Wildfly 中配置杰克逊及其?