论坛首页 入门技术论坛

JavaFx2. 写的 “Hello World”

浏览 3793 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-08-24  

      上面介绍了如何JavaFx 2. 版本的环境配置和软件配置,现在就用JavaFx 2. 写第一个程序,

使用eclipse(已经安装好 e(fx)eclipse 插件,详见 )步骤如下:

1、File--New

2、选择 Project 或者 最后的 other

3、在 JavaFx下找到 JavaFx  Project

4、按照 Java 那样创建一个Project 即可

5、创建类的时候,需要继承 javafx.application.Application   ,或者直接创建类的时候,选择创建 JavaFx  Main  Class 也行。

现在看一下新创建好的JavaFx Project ,可以比普通的Java 项目多了一个Java Fx SDK 环境和一个名为 build.fxbuild 的 文件,SDK 中就一个 jfxrt.jar 文件,其实也可以不安装插件,将这个 jar 放到 lib文件中,导入项目环境配置即可,不过从长远来看,这样比较麻烦哈,  build.fxbuild 包括了这个JavaFx 程序的一些信息,包括 开发者、程序及其签名的一些信息,这个文件后面可以作为发布 JavaFx 应用使用,暂不介绍。

       我使用的版本是JavaFx2.2,使用的开发工具是eclipse 4.2 。暂不介绍 JavaFX Scene Builder,也就不使用 .fxml 来写界面了,现在就用代码先写一个示例先,下面代码的作用就是在“窗体”中央显示一个Button组件,点击这个button,控制台输出“Hello World”,先看看下面的代码:

package org.javafx.study;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPaneBuilder;
import javafx.stage.Stage;

public class JavaFxHelloWorld extends Application {

	@Override
	public void start(Stage primaryStage) throws Exception {
		final Button button = new Button("Click me");
		button.setOnAction(new EventHandler<ActionEvent>() {
			@Override
			public void handle(ActionEvent event) {
				System.out.println("Hello World!");
			}
		});

		Parent root = BorderPaneBuilder.create().center(button).build();
		Scene scene = new Scene(root, 300, 250);
		primaryStage.setScene(scene);
		primaryStage.setTitle("JavaFx: Hello World");
		primaryStage.show();
	}

	public static void main(String[] args) {
		Application.launch(args);
	}
}

       JavaFx 应用程序继承自“javafx.application.Application”,Application 类是一个抽象类,从JavaFx 应用程序扩展而来。简单的来讲,无论什么时候运行一个JavaFx 程序实例,都是运行 init() 方法-----start()方法----最后运行stop()方法,不过start()方法是抽象的,因此要运行JavaFx程序必须实现 start 方法。

      上面的构建一个Button组件和Swing差不多,但是 此处 Button的点击监听事件是 setOnAction,不在是Swing中的 addActionListener,其实 JavaFx 里面的监听事件通用名已经由Swing的中“add*Listener” 变成了“setOn*”,比如像进入拖动监听为“setOnDragEntered”等..........

       不介绍原理了,我也是从“JavaFX_2.0 Introduction by Example”和“Pro JavaFX 2”两部书以及Oracle官网看到的,英语也不太好,很多地方也许自己理解错了哈,哈哈。在上面的程序中,Stage类是JavaFX中的顶层容器,Scene类是一个类似场景(scene graph )一样的东西,它包含了场景中的所有内容,Scene 类必须通过设置其root属性,你可以把root想象成一颗树的根(如果把Stage想象成JFrame,那么Scene可以类比成 JFrame的Container属性,这个Container中只添加了一个JTree,这儿的root 和JTree的“根节点”不一样,这儿的root就表示JTree,这个JTree可以添加各种Nodes,此处的Nodes 就可以比做Swing中JButton等各种组件。。。。是不是有点乱,我自己都感觉有点绕了,哎,先吃饭了。。。下次再写)。

  请各位多多指正!

 

  • 大小: 52.3 KB
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics