一个非常简单的问题。我尝试运行一个非常简单的演示来创建和显示来自Eclipse的窗口框架,但是什么都没有发生。没有错误,没有窗口,代码运行到完成。
我添加了断点,并确保代码按预期运行。代码直接来自于Java教程(FrameDemo),我只是重命名了这个包以适应我放置它的位置(这个包中的其他代码运行良好):
package ui;
import java.awt.*;
import javax.swing.*;
/* FrameDemo.java requires no other files. */
public class FrameDemo {
/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("FrameDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel emptyLabel = new JLabel("");
emptyLabel.setPreferredSize(new Dimension(175, 100));
frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);
//Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}我的装置(开普勒SR2):
我还检查了配置->错误日志;仍然没有,没有错误。我试过其他类似的演示,同样的结果。
任何帮助都将不胜感激,因为我已经被困在这超过一天。
发布于 2014-09-20 18:06:05
结果发现我有图书馆的问题。我已经从jfreechart导入了.lib目录中的所有jars。实际上,只需要两个,一些不必要的标记为swt和试验性的。有一次,我把所有不需要的东西都搬走了,做了个干净的,然后重建了,一切都很好。
奇怪的是,将jfreechart库(其中包括冲突的罐子)的顺序更改到底部没有帮助,不得不移除多余的罐子。
不是jfreechart问题,显然是我自己的库导入问题。如果遇到这种情况,我建议您尝试删除一些可能相互冲突的库,然后清理、构建并再次运行。
感谢全是鳗鱼的Hovercraft,以及所有帮助我的人。
发布于 2020-04-08 21:29:42
macOS + Eclipse + swt.jar给出了这个问题。
结果是,在macOS中,如果类路径中有swt.jar,则在启动GUI应用程序时,Eclipse会添加一个特殊的参数-XstartOnFirstThread。从外部库(用于构建类路径)中删除swt.jar之后,问题就解决了。
https://stackoverflow.com/questions/25951019
复制相似问题