Rob*_*ore 1 java user-interface swing jdialog
我在Java中编写了一个漂亮的东西,其中包含一个GUI,它包含一个相当小的JDialog,然后使用pack()来容纳后来编程的东西.所有这一切都在JDialog渲染之前进行.
然后,令我惊讶的是,大约80%的时间,当我运行它时,窗口无法调整大小.它似乎完全是随机的,因为它理论上每次都做同样的事情.为什么在地球上它会在五秒钟后在同一台机器上使用相同的代码执行不同的操作?
顺便说一句,当我为此GUI启用本机Windows外观时,会弹出此问题.
小智 5
根据我的经验,当GUI执行这样的随机有趣的事情时,它可能是在Event Dispatch Thread上没有进行所有GUI调用的症状.
确保来自非GUI线程的所有GUI调用都包含在SwingUtilities.invokeLater或invokeAndWait中.
一个快速的谷歌搜索出现了一个似乎是一个很好的方式来检查你的应用程序是否符合EDT规则:http://thejavacodemonkey.blogspot.com/2007/08/using-aspectj-to-detect-violations-of html的
| 归档时间: |
|
| 查看次数: |
803 次 |
| 最近记录: |