我是java的新手,但我认为这是非常直接的。我从文本文件导入数据时显示用户输入的JDialog,但对话框未在其他计算机上正确绘制。
如果我在NetBeans或命令提示符下运行程序,则在我的计算机上,然后对话框显示正确。如果我在计算机上运行它应该运行的程序,那么对话框的内部不会被绘制 - 我看到的只是对话框的边框,然后是控件应该在其后面的屏幕。此计算机正在运行XPSP2和jre6 update 11.。
有谁知道会出现什么问题?
TIA
答案 0 :(得分:1)
我们需要确保您的代码是可靠的,但是您很可能在某些侦听器代码中对UI thread执行导入 - 因为您使用的是UI线程,所以在您使用之前不会处理任何事件从听众那里回来。
解决方案是启动一个新线程来执行导入,然后让它触发事件来更新GUI。
答案 1 :(得分:0)
您是否正在Event Dispatch Thread进行与Swing相关的所有工作?如果是这样,你确定你没有阻止这个线程,或者做一些缓慢的事情吗?
答案 2 :(得分:0)
通过命令终端运行程序,以便查看程序是否抛出任何异常。
命令将是:java -jar pathtoyourjar.jar
答案 3 :(得分:0)
代码在一个地方工作,但在另一个地方不工作。电脑并不神奇。因此两台计算机之间必定存在一些差异。代码是Swing GUI代码。最可能的三个区别是:
如果两台计算机上与视频硬件的Java连接有所不同,请尝试查找内容。您的机器和目标机器都有最新的视频驱动程序等吗?目标计算机是否有两个监视器,或视频硬件中的其他一些差异,可能导致不同的代码执行?
两台计算机之间的差异,例如JRE或OS可能导致执行不同的代码。您告诉我们目标机器的JRE和操作系统:您的机器怎么样?你能找到第三台机器,或安装另一台JRE,以便我们知道它是机器还是JRE?
您可能在两台机器上有不同的Swing Look and Feel。尝试不同的外观和感觉。
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
只是提到问题可能在于你的代码在某个地方,而且这个bug更可能是你的代码而不是Swing Libraries,但这至少可以帮助你解决为什么一切都在一台机器而不是另一台机器上运行