搭建环境。
1. 下载安装JDK 8。
2. 下载集成JavaFX开发eclipse。我的下载当前最新版本是:eclipse 4.6 。官网提供的下载地址不翻墙太慢了。
3.下载JavaFX的UI设计工具。(这个hello world项目运行可以先不用下载安装,后面设计UI时才用到)
上面是window 32位系统的。64位系统下载下面的:
配置Eclipse 所使用 JDK 和 Scene Builder:
-
打开 Eclipse 的设置并找到 Java | Installed JREs 。
-
点击 Add…, 选择 Standard VM 并选择你安装 JDK 8 的 Directory 。
-
移除其他的 JREs 或 JDKs 从而使 JDK 8 成为默认。
-
在 Java | Compiler 中设置 Compiler compliance level 到 1.8。
-
在 JavaFX 中指定你的 Scene Builder 可执行文件的路径。
创建并启动一个JavaFX项目。
看教程提供的方法是:
1.在 Eclipse(已安装 e(fx)clipse 的)中,点击 File | New | Other… 并选择 JavaFX Project。
2.指定这个项目的名字(e.g. HelloApp)并点击 Finish。
3.如果 application 包被自动创建,那么删除它和它的内容。
2.指定这个项目的名字(e.g. HelloApp)并点击 Finish。
3.如果 application 包被自动创建,那么删除它和它的内容。
但是按照教程操作,我总是卡在Finish那里,第一次点击完成,窗口跳了一下,还是原来窗口,继续点击finish,这弹出提示窗口,显示什么:
the user operation is wating for “updating project HelloApp”。网上查了好久办法,对eclipse配置该改了改了,eclipse重启N多次。还是没解决。
最后关闭eclipse,直接删除文件夹下的项目文件,创建了一个普通的java project 。然后build path 把javafx需要的jar导入进去。(PS:问题是昨天遇到的,今天本来想重现一下截个图,突然发现好了,可以正常创建项目了,无语,还是把一般项目改为JavaFX说一下吧,其实很简单,就是把jar加进去就行了)
HelloWorld.java
package test;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorld extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
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。。。");
// }
// });
//lambda表达式方式添加事件(java8可以使用这种语法)
btn.setOnAction((e) -> {
System.out.println("hello world。。。");
});
StackPane root = new StackPane();
root.getChildren().add(btn);
//场景
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
编译运行可以看到下面界面,点击按钮,控制台会输出hello world