每当我在 Eclipse 中创建项目并包含 javafx 时,当我单击运行按钮时,应用程序不会加载。
e.g.
package test;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class test extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World!");
Button btn = new Button();
btn.setText("Say 'Hello World'");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Hello World!");
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
}
这应该运行一个简单的 hello world 应用程序,取自 oracle 文档。但是,当我“运行”此代码时,没有打开任何窗口。相反,会打开一个名为“java”的应用程序。看起来“java”只是一个位于“jdk1.8.0_25.jdk/contents/home/bin”中的“unix 可执行文件”。应用程序“java”绝对不显示任何内容,并且在不强制退出的情况下无法关闭。
我在 Macbook 上运行 eclipse。我可能遗漏了一些重要的细节......
有谁知道为什么我的应用程序没有正常运行?请原谅我的天真,我是 java 和 eclipse 的新手。
非常感谢
EDIT:
import javafx.application.Application;
import javafx.stage.Stage;
public class JavaFX extends Application {
public static void main(String[] args){
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
// TODO Auto-generated method stub
stage.show();
}
}
这个简单的程序也给出了同样的错误。
所以我知道这是一个老问题,但我遇到了我的问题believe最近遇到同样的问题,想分享我找到的解决方案(尽管我不知道why有用)。
pictured https://i.stack.imgur.com/1S7Ol.jpg
转到主类的“运行配置”,然后在“参数”选项卡上,取消选中“使用 SWT 启动时使用 -XstartOnFirstThread 参数”框。
添加问题的直观示例,以便比我更有知识的人可以解释为什么会发生这种情况/为什么这个解决方案有效:
This https://i.stack.imgur.com/Ec821.jpg是当您尝试运行该程序时所得到的结果。一个简单地称为“java”的应用程序似乎正在运行,但没有显示任何内容。
我希望这些信息能够帮助别人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)