JavaFX 学习旅程(一)

关于什么是javaFX,为什么使用javaFX等问题,网上有很多解释。

官方文档的学习笔记:

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);
    }
}

这里有几点内容需要清楚:5个基础

1.JavaFX应用程序的主类要继承 javafx.application.Application
2.JavaFX应用程序的主入口是 start()方法
3.JavaFX应用程序的用户界面包含在:stage(舞台) 和 scene(场景) 中
4.Stage 是JavaFX应用程序中的最高层级的容器
5.Scene是JavaFX应用程序中的所有内容的容器

结合以上例子不难理解

.HelloWorld 确实继承了javafx.application.Application;

.找到start()方法;

.我们可以看到Button控件被安放在了Scene中,这说明Scene是所有内容的容器,那么其他的内容也都应该放在这里;

.紧接着我们看到Scene被放在了Satge中,这也证实了Stage是JavaFX程序中的最高容器,连存放所有内容的场景也都被他包含了;

.可以从命名中这么理解Stage是舞台,Scene是场景,那么所有人,事物都应该存在与场景之中,而场景要布置在舞台上,舞台上可以有不同的场景;嗯,这样理解我才能理解的更好;



另外,Swing应用程序中嵌入JavaFX代码需要main()方法。这个就先知道一下吧

时间: 2024-08-28 08:17:55

JavaFX 学习旅程(一)的相关文章

JavaFX学习之道:JavaFX之TableView

TableView表 TableColumn列 构建一个表主要有TableView,TableColumn,ObservableList,Bean. 添加列table.getColumns().addAll(firstNameCol, lastNameCol, emailCol); ObservableList里面是存放的数据 table.setItems(observableList);添加数据 observableList里面一般是存放的Bean,列与Bean之间建立联系,从而获取值. 列与

JavaFx学习之道:JavaFx初步了解

因为项目的需要,实在是没有办法了,试了很多种方案(RCP,SWT,Flex,Smartinvoke...),最终还是决定开始研究JavaFx...为了给用户更好地体验我们的"智能家居"! 以下是最近搜索得到的一些资料: 1.Oracle 上 JavaFx的下载页面:http://www.oracle.com/technetwork/java/javafx/overview/index.html 目前最新版本的SDK是2.1 JavaFX 2.1 Developer Preview -

JavaFX学习之道:FileChooser 、POI导出Excel文件

以下是JavaFX中导出Excel的核心代码: private HSSFWorkbook workbook; /* Build Operation Button Area */ Button exportBn = ButtonBuilder.create().text("导出Excel").prefWidth(80).prefHeight(30).build(); exportBn.setDefaultButton(true); exportBn.setOnAction(new Eve

JavaFX学习之Web

PopupFeatures 处理新窗口    WebHistory 网页一般都带有历史记录的功能,可以回退,也可以前进,fx用WebHistory处理. Java代码   final WebHistory wh = webEngine.getHistory();   //获取webhistory go(int offset)   //跳到相对应的页,一般-1是后退,1是前进 getCurrentIndex()  //获取当前页索引,开始页索引为0,点击进入下一页此时为1. WebView Web

JavaFX学习之道:FXML入门

FXML是JavaFX 2.0提供的新技术.你可能会问"什么是FXML?","对我来说有什么用?". FXML是一种在JavaFX应用程序中定义用户界面的,基于XML的声明性标记语言.FXML非常适合用来静态布局,如表单.控件和表格.使用FXML,您还可以通过脚本动态地构建布局. FXML的优势之一是基于XML,是大多数开发人员所熟悉的,尤其是Web开发人员和使用其他RIA平台的开发人员.另一个优点是,FXML是不是编译语言,你不需要重新编译代码就可看到您所做的更改

JavaFX学习之道:JavaFX API详解之Window,Stage,PopupWindow

stage包中包含 Window, Stage, PopupWindow, Popup, FileChooser, DirectoryChooser, Screen等类. 其中Window类可理解成一个窗体,用于存放Scene,并与用户操作.一般window作为窗体,都用其子类Stage和PopupWindow. 看一下Window作为窗体的顶级类包含的一些共同属性 eventDispatcher setEventDispatcher(EventDispatcher value) focused

JavaFX学习之道:详解JavaFX架构与框架

JavaFX 2.0平台是基于Java技术的富客户端平台.它使应用程序开发者更加容易的开发和部署跨平台的富互联网应用(RIA).JavaFX 2.0文档包含了JavaFX 2.0所提供的功能的概述. 图1描述了JavaFX 2.0平台的架构组件.后面的部分将对每一个组件进行逐一的描述.在JavaFX通用API的下面是用来运行JavaFX代码的引擎.这个引擎包括以下子组件:JavaFX高性能图形引擎(Prism);新的更小但更有效率的窗体系统(Glass);媒体引擎和Web引擎.虽然这些组件不是包

JavaFX学习之道:文本框TextField

原文地址http://download.oracle.com/javafx/2.0/ui_controls/text-field.htm TextField类实现了一种可以接受和显示文本输入的UI控件,它提供了接受用户输入的功能.和另一个文本输入控件PasswordField一起都继承了TextInput这个类,TextInput是所有文本控件的父类. Figure 8-1 是一个带有标签的典型文本框. Figure 8-1 Label and Text Field Description of

JavaFX学习之道:文本Text及其特效

原文地址http://download.oracle.com/javafx/2.0/text/jfxpub-text.htm 文本讲述如何在JavaFX2.0应用中加入文本和如何为文本提供花俏的效果. 引子 JavaFX 2.0应用的图形内容包含一些对象,它们被组织在一个成为场景图的类树结构中.场景图中的每个元素成为一个结点,结点可以管理很多不同种类的内容,包括文本.结点可以转换和移动,也可以应用多种效果.为所有结点类型使用共同特点使得可以提供复杂的文本内容来满足现在的富网络应用(RIAs).