我使用Swing编写了一个Java数据库程序,它在我的Windows机器上看起来很好用。我期待能够将它转移到我的Linux(CentOS 6)机器上,没有任何问题,虽然它编译并运行得很好,但GUI是空白的。
具体来说,我显示的JDialog
显示为纯灰色矩形,但当我将鼠标悬停在文本框上时,我仍然可以看到我的光标变为I
条,我可以输入他们按下隐形的确定按钮,它的工作原理。 (这是一个数据库登录对话框。)
然后,显示我设置为MDI父级的JFrame
,但它的大小为零。如果我将它拖动打开它确实有一个边框,但它没有明显有我放在它上面的菜单。我似乎无法像在JDialog上那样无形地访问菜单。
我怀疑这必须与某些Java或库版本有关,但我不确定。我尝试安装Java 7,但它没有改变任何东西。我不确定是否应该完全卸载Java并尝试重新安装它,或者如果它可能与项目有关(如果有帮助的话,我正在使用Eclipse Kepler。)
我看到其他一些“Java程序是空白的”问题,但它们要么没有答案,要么与我遇到的问题不同。 (到目前为止,我的程序在CentOS下只是空白;它可以在Windows下运行并且看起来很好。)
答案 0 :(得分:0)
我把它缩小到一行。在JDialog
我有以下内容:
setType(Type.POPUP);
一旦删除此行,对话框就会显示出来。
此外,我发现如果我使用Test/Preview...
功能(这是使用WindowBuilder),当该行存在时,它会显示对话框为空,但它是非交互式的并且有效地挂起了Eclipse。这导致我“终结任务”java.exe,它解冻了Eclipse,但它最终导致了更多的问题,包括我的MDI JFrame
。
重新启动并删除上面的POPUP
行后,一切正常。