java – 使用JTable显示流数据的缓慢性能
我引用的代码是专有的,需要多播服务器,因此我无法发布SSCCE代码段.我理解这可能会排除任何有用的洞察力,从而引发可行的反应……
我正在使用Java 7 u 9进行编译. 我目前正在GUI应用程序中使用JTable来监听多播数据,并在它到达时显示它.滚动表格或调整列大小时,应用程序响应速度极慢. 我以为我正确地构建了我的代码. 我使用了一个包装类,在它的main()函数中,它创建了一个自身的实例,它处理命令行参数,创建监听器,创建JFrame并调用返回JTable的类.这都是在事件派发线程之外完成的. 然后,在下一行中,我使用invokeLater()方法创建一个处理所有GUI呈现的线程.它创建一个JScrollPane,将JTable添加到滚动窗格,设置滚动条,设置视口,设置滚动模式,以及将JScrollPane添加到JFrame.这都是在事件派发线程中处理的. 这些行通常填充得相当快,偶尔屏幕冻结(某些行包含30行或更多行),但响应性似乎可以接受.但是,在滚动或调整列大小时,响应非常慢. 我见过的所有示例,包括SwingX SwingLabs演示都引用了预先加载的初始数据集.我需要一个使用JTable和流数据的例子. 谁能指点我这样的例子/演示? 这是我的主要()片段…… public static void main(String args[]) { final JXTrapTableGUI ttg = new JXTrapTableGUI(args); SwingUtilities.invokeLater(new Runnable() { public void run() { ttg.createAndShowGUI(); } }); } PS.我要感谢每一位回复的人.我已被推迟到3月11日这个项目,但我将审查该日期的所有回复. 解决方法
我认为JTable根本不适用于流数据.如果TableModel不包含实际列表而是与数据流的某些连接,那么您提到的所有优化技术(如保持处理的事件调度线程)都是不相关的.
如果没有看到你试图如何处理这个问题,很难确切知道它为什么会变慢.但这就是我如何让它成为代表: 我的设计假设UI响应比100%与数据流同步更重要.调整计时器应该让您在拥有响应式UI的最新表格中进行权衡. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 有没有办法找到任务管理器在Java中运行的线程数?
- java – OptimisticLockException与Ebean / Play
- jsf – 将PrimeFaces应用程序部署到GlassFish4会导致java.l
- java – Netbeans&Maven:不同的编译行为
- java – Nimbus L&F缺少JTabbedPane上的分隔符设置为滚
- javafx-2 – JavaFX全屏 – 基于屏幕大小调整元素大小
- java – 为什么项目特定的RuntimeException?
- Java代码等同于以下php代码
- java – 在终止的代码上使用JUnit
- jMeter Slave – 服务器无法启动:java.rmi.RemoteExceptio