[技术分享]JavaFX入门

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

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

[技术分享]JavaFX入门
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工具使用
布局界面工具的使用:
[技术分享]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的上面有一定的相识程度。

57 个解决方案

#1


[技术分享]JavaFX入门

#2


这个要顶呢 [技术分享]JavaFX入门

#3


好东西唀的...

#4


好好好,虽然不明白,哈哈……

#5


该回复于2013-04-24 16:29:16被管理员删除

#6


该回复于2013-04-24 16:29:16被管理员删除

#7


该回复于2013-04-24 16:29:16被管理员删除

#8


[技术分享]JavaFX入门

#9


我也写过几个简单的代码
基本和安卓代码极像

#10


这个刚好我现在用得着~~~~~~~~

#11


good topic

#12


[技术分享]JavaFX入门

#13


定定定。 [技术分享]JavaFX入门

#14


   java UI除了用在移动平台上,还能用在哪里呢?

#15


高可用性ZgvS df 

#16


貌似 JAVAFX 很不错的样子!

#17


该回复于2013-04-25 08:53:49被管理员删除

#18


我也写过 [技术分享]JavaFX入门

#19


不错,值得看看

#20


好贴 ,顶顶顶 

#21


好工具大家喜欢。

#22


该回复于2013-04-25 09:21:27被管理员删除

#23


很好,虽然看不懂但是很好

#24


[技术分享]JavaFX入门

#25


呵呵国际控股

#26


这个不错,我喜欢!!!

#27


呵呵国际控股

#28


[技术分享]JavaFX入门

#29


好东西 感谢楼主了

#30


[技术分享]JavaFX入门好用吗

#31


这个要顶呢 [技术分享]JavaFX入门

#32


 java UI除了用在移动平台上,还能按照这个方法处理吗?http://www.chinafanli.com/index.php?mod=help&act=index

#33


[技术分享]JavaFX入门

#34


该回复于2013-04-25 09:34:23被管理员删除

#35


不知道是不是很稳定,还有跨平台等等。你懂得。 [技术分享]JavaFX入门

#36


[技术分享]JavaFX入门

#37


就对技术就对技术

#38


该回复于2013-04-25 10:26:22被管理员删除

#39


[技术分享]JavaFX入门

#40


该回复于2013-04-25 14:20:31被管理员删除

#41


初学者,请多多关照 [技术分享]JavaFX入门

#42


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

#43


该回复于2013-04-26 08:52:03被管理员删除

#44


该回复于2013-04-26 08:47:39被管理员删除

#45


感谢达人分享

#46


[技术分享]JavaFX入门

#47


[技术分享]JavaFX入门   看不明白

#48


java的代码怎么看都是那么优雅

#49


谢谢!好东西!

#50


[技术分享]JavaFX入门

#1


[技术分享]JavaFX入门

#2


这个要顶呢 [技术分享]JavaFX入门

#3


好东西唀的...

#4


好好好,虽然不明白,哈哈……

#5


该回复于2013-04-24 16:29:16被管理员删除

#6


该回复于2013-04-24 16:29:16被管理员删除

#7


该回复于2013-04-24 16:29:16被管理员删除

#8


[技术分享]JavaFX入门

#9


我也写过几个简单的代码
基本和安卓代码极像

#10


这个刚好我现在用得着~~~~~~~~

#11


good topic

#12


[技术分享]JavaFX入门

#13


定定定。 [技术分享]JavaFX入门

#14


   java UI除了用在移动平台上,还能用在哪里呢?

#15


高可用性ZgvS df 

#16


貌似 JAVAFX 很不错的样子!

#17


该回复于2013-04-25 08:53:49被管理员删除

#18


我也写过 [技术分享]JavaFX入门

#19


不错,值得看看

#20


好贴 ,顶顶顶 

#21


好工具大家喜欢。

#22


该回复于2013-04-25 09:21:27被管理员删除

#23


很好,虽然看不懂但是很好

#24


[技术分享]JavaFX入门

#25


呵呵国际控股

#26


这个不错,我喜欢!!!

#27


呵呵国际控股

#28


[技术分享]JavaFX入门

#29


好东西 感谢楼主了

#30


[技术分享]JavaFX入门好用吗

#31


这个要顶呢 [技术分享]JavaFX入门

#32


 java UI除了用在移动平台上,还能按照这个方法处理吗?http://www.chinafanli.com/index.php?mod=help&act=index

#33


[技术分享]JavaFX入门

#34


该回复于2013-04-25 09:34:23被管理员删除

#35


不知道是不是很稳定,还有跨平台等等。你懂得。 [技术分享]JavaFX入门

#36


[技术分享]JavaFX入门

#37


就对技术就对技术

#38


该回复于2013-04-25 10:26:22被管理员删除

#39


[技术分享]JavaFX入门

#40


该回复于2013-04-25 14:20:31被管理员删除

#41


初学者,请多多关照 [技术分享]JavaFX入门

#42


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

#43


该回复于2013-04-26 08:52:03被管理员删除

#44


该回复于2013-04-26 08:47:39被管理员删除

#45


感谢达人分享

#46


[技术分享]JavaFX入门

#47


[技术分享]JavaFX入门   看不明白

#48


java的代码怎么看都是那么优雅

#49


谢谢!好东西!

#50


[技术分享]JavaFX入门