在下一个对话框中,您可以指定应用程序的名称和目标文件夹,该文件夹应存储在该文件夹中。 如果您已正确安装JavaFX,则应已指定“ JavaFX Platform”。 否则,您可以通过单击“管理平台->添加平台”并指定JavaFX安装的路径来自己添加平台。
注意:默认情况下,“创建应用程序类”复选框处于选中状态。 请取消选中它,因为我们将创建自己的应用程序类。
单击“完成”以创建您的第一个JavaFX应用程序。
JavaFX 2.0中的Hello World –示例1
大概每个软件开发人员都知道著名的“ HelloWorld”示例,因为该示例通常用于显示(未知)编程语言的语法并给出语言的初步线索。 我不想破坏这一传统,因此这里有JavaFX 2.0中HelloWorld程序的2个不同版本。 我将首先显示完整的代码,然后说明各个部分。
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;/*** * Created on: 17.03.2012* @author Sebastian Damm*/
public class HelloJavaFX extends Application
{@Overridepublic void start(Stage stage) throws Exception{ Button bt = new Button('Print HelloWorld');bt.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent arg0){System.out.println('HelloWorld! :)');}});StackPane root = new StackPane();Scene scene = new Scene(root, 300, 150);root.getChildren().add(bt);stage.setTitle('HelloWorld in JavaFX 2.0');stage.setScene(scene);stage.show();}public static void main(String[] args){Application.launch(args);}
}
值得一提的第一件事是,您必须从Application
类进行扩展才能创建一个有效的JavaFX应用程序。 此类提供了几种实时循环方法,并且是您应用程序的起点。 它是一个抽象类(意味着您无法实例化它),它具有一个必须覆盖的抽象方法start
。 JavaFX运行时为您提供了一个stage
对象,您可以使用该对象来显示您的UI。
要启动您的应用程序,您必须调用静态方法launch
如本示例中的main
方法所示。 启动应用程序后,它将调用start
方法。 这是Application
类的JavaDoc,它显示了启动JavaFX应用程序时的各个步骤。 JavaFX应用程序的入口点是Application类。 每当启动应用程序时,JavaFX运行时就会依次执行以下操作:构造指定的Application类的实例
- 调用init()方法
- 调用start(javafx.stage.Stage)方法
- 等待应用程序完成,这可能在关闭最后一个窗口或应用程序调用Platform.exit()时发生
- 调用stop()方法
让我们start
方法中的真实源代码start
。
首先,我们创建一个简单的Button
并指定一个通过setOnAction
方法单击按钮时要触发的动作(比较JButton的addActionListener
)。
接下来,我们创建一个StackPane
对象,该对象是JavaFX中的布局窗格之一(下一篇博客文章将介绍JavaFX中的所有不同布局窗格)。 我在这里使用StackPane
,因为它会自动占用其周围父级提供的所有可用空间,并且会自动将其子级内部居中。
注意: JavaFX应用程序的基础是Scene graph
。 每个Node
(包括简单的控件,组和布局窗格)都是节点的分层树的一部分,该树称为“ Scene graph
。 Scene graph
以及整个JavaFX应用程序始终只有一个根节点!
如上所述, start
方法具有一个Stage
对象参数,该参数由JavaFX运行时提供。 此Stage
对象是一种窗口。 您必须为其提供一个Scene
对象作为其可见内容。 您可以通过传递应用程序的根节点来创建一个Scene
对象。 可选参数包括场景的宽度和高度以及Paint
对象,其中包括简单的颜色以及复杂的颜色渐变。
使用root.getChildren().add(bt);
您将按钮添加到您的根节点,这是一个堆栈窗格。 之后,我们为stage
设置标题并应用创建的scene
对象。 最后使用show
方法,我们告诉stage
进行展示。 (比较Swing的setVisible
现在,您的应用程序应如下所示:
如果您单击按钮,它将在命令行上打印“ HelloWorld”。 没什么特别的,但是这是您第一个可以使用的JavaFX应用程序,恭喜! :)
JavaFX 2.0中的Hello World –示例2
Additionally a slightly changed example, which will show the text in the GUI.
The code:
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.effect.DropShadow;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;/*** * Created on: 17.03.2012* @author Sebastian Damm*/
public class HelloJavaFX2 extends Application
{@Overridepublic void start(Stage stage) throws Exception{final Group root = new Group();Scene scene = new Scene(root, 500, 200, Color.DODGERBLUE);final Text text = new Text(140, 120, 'Hello JavaFX 2.0!');text.setFont(Font.font('Calibri', 35));text.setFill(Color.WHITE);text.setEffect(new DropShadow()); Button bt = new Button('Show HelloWorld'); bt.setLayoutX(180);bt.setLayoutY(50);bt.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent arg0){root.getChildren().add(text);}});root.getChildren().add(bt);stage.setTitle('HelloWorld in JavaFX 2.0');stage.setScene(scene);stage.show();}public static void main(String[] args){Application.launch(args);}
}
我们在这里使用Group
对象,而不是使用布局窗格。 Group
是Parent
的子类(是Node
的子类),并接收一个或多个子代。 Group
直接调整大小,您可以向Group
添加变换或效果,这将影响Group
所有子级。 (请注意,我们现在还提供了“ Scene
Paint
Scene
。)
接下来,我们创建一个Text
对象。 因为没有布局窗格,所以我们直接指定x和y坐标。 我们指定一种自定义字体,将颜色更改为白色,然后添加一个DropShadow
。 Button
还获得坐标,并且当我们单击按钮时,而不是在命令行上打印“ HelloWorld”,而是将创建的Text
对象添加到我们的根元素(并因此添加到Scene Graph
)。 单击按钮后,您的应用程序应如下所示。
摘要:
- JavaFX
Stage
对象是一种窗口,其行为类似于Swing中的JFrame
或JDialog
。 - JavaFX
Scene
对象是Stage
的可见内容,并且具有单个Parent
根节点。 -
Node
是JavaFX中最重要的类之一。 每个控件或布局窗格都是一种节点。 -
Scene Graph
是节点的分层树。 它只有一个根节点,是您应用程序的基础。 它必须传递给一个Scene
对象 - 为了创建和启动JavaFX应用程序,您必须完成以下步骤:
- 扩展
Application
类
- 扩展
参考: JavaFX 2.0中的Hello World,来自我们的JCG合作伙伴 Sebastian Damm,作者关于Java博客的Just my 2 cents 。
翻译自: https://www.javacodegeeks.com/2012/06/javafx-20-hello-world.html