Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在eclipse中运行Java应用程序时JFrame不可见?_Java_Eclipse_Swing - Fatal编程技术网

为什么在eclipse中运行Java应用程序时JFrame不可见?

为什么在eclipse中运行Java应用程序时JFrame不可见?,java,eclipse,swing,Java,Eclipse,Swing,大家好,谢谢大家看我的问题。 在Eclipse中开发swing应用程序时,我面临以下问题: 当我尝试启动一个简单的swing JFrame应用程序(例如,由gui构建器(如window builder)生成,或者从编程手册中的小示例生成)时,程序将无任何错误地运行,但JFrame将不可见。当然,这些示例使JFrame在末尾可见 Framename.setVisible(true) 我认为问题出在Eclipse中的某个地方,因为当我在Eclipse中生成这个应用程序的可运行jar并在Eclipse

大家好,谢谢大家看我的问题。 在Eclipse中开发swing应用程序时,我面临以下问题: 当我尝试启动一个简单的swing JFrame应用程序(例如,由gui构建器(如window builder)生成,或者从编程手册中的小示例生成)时,程序将无任何错误地运行,但JFrame将不可见。当然,这些示例使JFrame在末尾可见

Framename.setVisible(true)

我认为问题出在Eclipse中的某个地方,因为当我在Eclipse中生成这个应用程序的可运行jar并在Eclipse之外运行它时,JFrame将如预期的那样出现。这种行为发生在我已经测试过的所有示例中。你有什么建议可以告诉我如何解决这个问题吗? 提前谢谢 理查德

--

编辑:我自己解决了我的问题,但我不明白为什么会这样: 当swing应用程序位于引用了SWT/JFace库(1)的项目中时,它们似乎无法工作。一旦我删除了这些引用,或者将该类移动到另一个项目,该类就会恢复工作。这种行为有什么好的理由吗


如果扩展了
MyClassName扩展JFrame
,则需要使用setVisible(true)
您也可以在应用程序准备启动时使用它,这种行为更容易接受:

EventQueue.invokeLater(new Runnable(){
public void run(){
new MyClassName().setVisible(true);
}
});

你确定框架没有出现在Eclipse IDE后面吗?运行应用程序时,是否显示Java进程(在窗口底部栏上的按钮上)?您是否有一个使用Eclipse正在运行的main类设置框架的示例?是的,我仔细检查了IDE后面是否没有窗口(我正在使用OS X 10.9.4在MBP上开发)。进程仍在运行,但未显示任何窗口。我现在隔离了有问题的jar库:当我删除org.eclipse.swt.cocoa.macosx.x86_64.jar库时,将显示JFrame!但是,为什么在这种情况下,这种lib会有问题呢?JFrame来自swing,而不是SWT。实现和调试的问题属于堆栈溢出(已经有投票支持就地迁移,请不要重新发布该问题)。请阅读以更好地了解哪些问题适用于P.SE,以及它与堆栈溢出的区别。粗略地说,P.SE是用于在白板前处理设计问题的,而在IDE前也是如此。