当前位置:编程学习 > JAVA >>

[技术分享]JavaFX入门

简介:
1、JavaFx介绍
JavaFX是Oracle公司开发的一套比较好的java的UI的库,在1.0的版本好像是个不知道的新的一种脚本,现在的这个2.0之,后的版本,就是在java的代码编写,在加上像android的布局的一些文件。

在以前的老点的JDK版本,要单独安装javaFX的一些组件,现在全部都集成在一起了,我现在使用的版本是JDK1.7_10.
在学习的时候,建议大家下载官方的Demo程序,可以看到一些基本的组件和组件得到使用的方法。
下面列出Demo的一些截图:


javaFx、Swing、AWT的区别:
AWT,是重量级的,本质上来说是调用系统的api,生产的组件(所以,界面最与系统风格相似)。
Swing就是,在基于一个原生态的画板,在上面用一支画笔绘出界面。
JavaFX,就是基于Swing的。

参考:http://baike.baidu.com/view/951173.htm
      http://www.oracle.com/technetwork/java/javafx/overview/index.html

2、 JavaFX环境搭建
本次教程所使用的工具JDK1.7_10(你懂的), eclipse-SDK-4.2.1-win32-efx-0.8.0(包含有javaFX的SDK,和一些版本插件),javafx_scenebuilder-1_1-beta-b16-windows-20_dec_2012(一种生成布局文件的工具。)。
安装好上面的软件,即可。
3、 JavaFX工具使用
布局界面工具的使用:

4、 JavaFX的 Hello World。
1、通过java的代码,新建的应用的程序。

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;

/**
 *
 * @author Wang
 */
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);
    }
}



2、通过fxml界面的配置文件,作为用户的界面(这个有点类似于新建android程序中的layout布局的文件)。
   主程序的入口:

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

/**
 *
 * @author Wang
 */
public class HelloWorld extends Application {
    
    @Override
    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
        
        Scene scene = new Scene(root);
        
        stage.setScene(scene);
        stage.show();
    }

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


加载的布局的文件(Sample.fxml)

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml" fx:controller="javafxapplication8.SampleController">
    <children>
        <Button layoutX="126" layoutY="90" text="Click Me!" onAction="#handleButtonAction" fx:id="button" />
        <Label layoutX="126" layoutY="120" minHeight="16" minWidth="69" fx:id="label" />
    </children>
</AnchorPane>


布局文件中,事件的控制文件,以及控件的初始化的…

import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;

/**
 *
 * @author Wang
 */
public class SampleController implements Initializable {
    
    @FXML
    private Label label;
    
    @FXML
    private void handleButtonAction(ActionEvent event) {
        System.out.println("You clicked me!");
        label.setText("Hello World!");
    }
    
    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }    
}


PS:通过,netbeans上面可以很容易的创建内置的JavaFx的应用。上面的很多内容都很有参考价值。界面的布局跟android的上面有一定的相识程度。
javafx --------------------编程问答-------------------- --------------------编程问答-------------------- 这个要顶呢 --------------------编程问答-------------------- 好东西唀的... --------------------编程问答-------------------- 好好好,虽然不明白,哈哈…… --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- --------------------编程问答-------------------- 我也写过几个简单的代码
基本和安卓代码极像 --------------------编程问答-------------------- 这个刚好我现在用得着~~~~~~~~ --------------------编程问答-------------------- good topic --------------------编程问答-------------------- --------------------编程问答-------------------- 定定定。 --------------------编程问答--------------------    java UI除了用在移动平台上,还能用在哪里呢? --------------------编程问答-------------------- 高可用性ZgvS df  --------------------编程问答-------------------- 貌似 JAVAFX 很不错的样子! --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 我也写过 --------------------编程问答-------------------- 不错,值得看看 --------------------编程问答-------------------- 好贴 ,顶顶顶  --------------------编程问答-------------------- 好工具大家喜欢。
--------------------编程问答-------------------- 除 --------------------编程问答-------------------- 很好,虽然看不懂但是很好 --------------------编程问答-------------------- --------------------编程问答-------------------- 呵呵国际控股 --------------------编程问答-------------------- 这个不错,我喜欢!!! --------------------编程问答-------------------- 呵呵国际控股 --------------------编程问答-------------------- --------------------编程问答-------------------- 好东西 感谢楼主了 --------------------编程问答-------------------- 好用吗 --------------------编程问答-------------------- 这个要顶呢 --------------------编程问答--------------------  java UI除了用在移动平台上,还能按照这个方法处理吗?http://www.chinafanli.com/index.php?mod=help&act=index --------------------编程问答-------------------- --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 不知道是不是很稳定,还有跨平台等等。你懂得。 --------------------编程问答-------------------- --------------------编程问答-------------------- 就对技术就对技术 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 初学者,请多多关照 --------------------编程问答-------------------- http://d-h.st/k9Xhttp://d-h.st/k9Xhttp://d-h.st/k9Xhttp://d-h.st/k9Xhttp://d-h.st/k9Xhttp://d-h.st/k9X --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 感谢达人分享 --------------------编程问答-------------------- --------------------编程问答--------------------    看不明白 --------------------编程问答-------------------- java的代码怎么看都是那么优雅 --------------------编程问答-------------------- 谢谢!好东西! --------------------编程问答-------------------- --------------------编程问答-------------------- 马克一下,谢谢 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 不错,一直没弄明白javaFX是啥 --------------------编程问答-------------------- --------------------编程问答-------------------- 不错不错的的 --------------------编程问答-------------------- 这个必须顶,有好的大家一起分享,欣赏这种态度!看这里大神很多,希望能找到这样的大神,在自己工作之余愿意帮我们录制教学视频教程,教程针对14大类90多种软件的最近版本,包括project,visio,office,powerpoint,3DS max,vray,indesign,combustion,fireworks,autoCAD,delphi,ASP,oracle,android,matlab,director,ACD see,五笔等等等等,价格不错,一套视频一两万,有意愿的联系我呀! --------------------编程问答-------------------- 用了一段时间FX2,感觉还行吧,毕竟都集到JDK里了,只是现在组件少了点,以后会好的。
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,