每一种语言,让我们最好入门的方式自然是“Hello World”。 在第一节中,我们将会学习,在JavaFX中创建Hello World程序。
代码如下:
package helloworld;
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 HelloWorld extends Application {
@Override
public void start(Stage primaryStage) {
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);
Scene scene new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
这里,我们将会讲解一个JavaFX程序的基础结构。
1.JavaFX的主类继承与 javafx.application.Application类。start()方法为JavaFX程序的主入口。
2.JavaFX中,使用Stage和Scene来作为UI的容器。其中,Stage类是JavaFX中的顶层容器。而Scene类则是JavaFX中所有内容的容器,例如UI控件等,都是直接添加到Scene中的。在上面得例子里,我们创建了Scene让它以特定的大小显示出来。
3. 在上例中,根节点为StackPane,是一个可变大小的节点。这意味着,这个根节点的大小受Scene大小的影响,并且当Stage大小被用户改变时,它也会一同改变。
4.这个根节点包含一个子节点,一个Button,在上例中,我们给button添加了一个事件,点击时会打印一些内容。
5.当JAR文件是使用JavaFX Packager Tools来创建的时候,JavaFX程序并不需要main()方法。因为这时候 JavaFX Launcher会嵌入在JAR文件中。但是无论如何,包含main()将会非常有用,我们可以运行任何并没有JavaFX Launcher的JavaFX JAR程序。另外,如果有Swing嵌入在JavaFX代码中,那么main()方法将是必须的。
运行程序结果如下:
第一节结束了,大家也应该了解了JavaFX的程序结构,并且可以写出基本的JavaFX程序了。
文章评论
学JavaFx也是抱着对Java的热爱,希望能写出一个好一点的图形界面,awt和swing的话都不太理想。
找了好久到没有找到通俗详细的JavaFX教程,不过想想也是,实际开发中,JavaFX似乎并不常用。不过我目前学习JavaFX也主要是为了更好的了解面向对象理论,非常感谢您的分享
@匿名 是的,JavaFX面世10年多依然没有火起来,以后应该也没什么希望了。
居然很少人评论 感觉写的很棒
@匿名 因为最早是在CSDN写的,后来建了个人博客才从CSDN上转移过来的,不过已经很久没做JavaFX开发了。