个性化阅读
专注于IT技术分析

创建第一个JavaFX应用程序

在这里, 我们正在创建一个简单的JavaFX应用程序, 通过单击舞台上显示的按钮在控制台上打印问候世界。

步骤1:扩展javafx.application.Application并覆盖start()

正如我们之前研究的那样, start()方法是构造JavaFX应用程序的起点, 因此, 我们需要首先重写javafx.application.Application类的start方法。类javafx.stage.Stage的对象传递到start()方法中, 因此导入该类并将其对象传递到start方法中。需要导入JavaFX.application.Application才能覆盖启动方法。

该代码将如下所示。

package application; 
import javafx.application.Application;
import javafx.stage.Stage;
public class Hello_World extends Application{

	@Override
	public void start(Stage primaryStage) throws Exception {
		// TODO Auto-generated method stub
		
	}

}

步骤2:建立按钮

可以通过实例化javafx.scene.control.Button类来创建按钮。为此, 我们必须将此类导入到我们的代码中。在Button类构造函数中传递按钮标签文本。该代码将如下所示。

package application; 
import javafx.application.Application;
importjavafx.scene.control.Button;
import javafx.stage.Stage;
public class Hello_World extends Application{

	@Override
	public void start(Stage primaryStage) throws Exception {
		// TODO Auto-generated method stub
		Buttonbtn1=newButton("Say, Hello World");
		
	}

}

第3步:创建布局并向其中添加按钮

JavaFX提供了许多布局。我们需要实现其中之一以便正确可视化小部件。它存在于场景图的顶层, 可以看作是根节点。所有其他节点(按钮, 文本等)都需要添加到此布局中。

在此应用程序中, 我们实现了StackPane布局。可以通过实例化javafx.scene.layout.StackPane类来实现。现在, 代码如下所示。

package application; 
import javafx.application.Application;
import javafx.scene.control.Button;
import javafx.stage.Stage;
import javafx.scene.layout.StackPane;
public class Hello_World extends Application{

	@Override
	public void start(Stage primaryStage) throws Exception {
		// TODO Auto-generated method stub
		Button btn1=new Button("Say, Hello World");
		StackPane root=new StackPane();
		root.getChildren().add(btn1);
		
	}

}

步骤4:创建场景

需要将布局添加到场景。场景保持在应用程序结构层次结构中的较高级别。可以通过实例化javafx.scene.Scene类来创建它。我们需要将布局对象传递给场景类构造函数。现在, 我们的应用程序代码如下所示。

package application; 
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
import javafx.scene.layout.StackPane;
public class Hello_World extends Application{

	@Override
	public void start(Stage primaryStage) throws Exception {
		// TODO Auto-generated method stub
		Button btn1=new Button("Say, Hello World");
		StackPane root=new StackPane();
		root.getChildren().add(btn1);
		Scene scene=new Scene(root);	
	}

}

我们还可以在Scene类构造函数中传递场景所需舞台的宽度和高度。

步骤5:准备阶段

javafx.stage.Stage类提供了一些重要的方法, 需要调用这些方法才能设置舞台的某些属性。我们可以设置舞台的标题。我们还需要调用show()方法, 否则将不会显示该阶段。让我们看一下描述如何准备应用程序阶段的代码。

package application; 
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
import javafx.scene.layout.StackPane;
public class Hello_World extends Application{

	@Override
	public void start(Stage primaryStage) throws Exception {
		// TODO Auto-generated method stub
		Button btn1=new Button("Say, Hello World");
		StackPane root=new StackPane();
		root.getChildren().add(btn1);
		Scene scene=new Scene(root);	
		primaryStage.setScene(scene);
		primaryStage.setTitle("First JavaFX Application");
		primaryStage.show();
	}

}

步骤6:为按钮创建一个事件

当我们的应用程序在按钮上打印事件的问候世界时。我们需要为按钮创建一个事件。为此, 请在按钮上调用setOnAction()并将一个匿名类Event Handler定义为该方法的参数。

在这个匿名类中, 定义一个方法handle(), 其中包含有关事件处理方式的代码。在我们的例子中, 它正在控制台上打印hello world。

package application; 
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
import javafx.scene.layout.StackPane;
public class Hello_World extends Application{

	@Override
	publicvoid start(Stage primaryStage) throws Exception {
		// TODO Auto-generated method stub
		Button btn1=new Button("Say, Hello World");
		btn1.setOnAction(new EventHandler<ActionEvent>() {
			
			@Override
			publicvoid handle(ActionEvent arg0) {
				// TODO Auto-generated method stub
				System.out.println("hello world");
			}
		});
		StackPane root=new StackPane();
		root.getChildren().add(btn1);
		Scene scene=new Scene(root, 600, 400);	
		primaryStage.setScene(scene);
		primaryStage.setTitle("First JavaFX Application");
		primaryStage.show();
	}

}

步骤7:建立主要方法

到目前为止, 我们已经配置了开发基本JavaFX应用程序所需的所有必要内容, 但是该应用程序仍不完整。我们尚未创建主要方法。因此, 最后, 我们需要创建一个main方法, 在其中我们将启动应用程序, 即, 将调用launch()方法并将命令行参数(args)传递给该方法。现在, 代码如下所示。

package application; 
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
import javafx.scene.layout.StackPane;
public class Hello_World extends Application{

	@Override
	public void start(Stage primaryStage) throws Exception {
		// TODO Auto-generated method stub
		Button btn1=new Button("Say, Hello World");
		btn1.setOnAction(new EventHandler<ActionEvent>() {
			
			@Override
			public void handle(ActionEvent arg0) {
				// TODO Auto-generated method stub
				System.out.println("hello world");
			}
		});
		StackPane root=new StackPane();
		root.getChildren().add(btn1);
		Scene scene=new Scene(root, 600, 400);	
		primaryStage.setTitle("First JavaFX Application");
		primaryStage.setScene(scene);
		primaryStage.show();
	}
	publicstaticvoid main (String[] args)
	{
		launch(args);
	}

}

该应用程序将在屏幕上产生以下输出。

第一个JavaFX应用程序
赞(0)
未经允许不得转载:srcmini » 创建第一个JavaFX应用程序

相关推荐

评论 抢沙发

评论前必须登录!