[技术分享]JavaFX入门

dblackde 2013-04-22 06:14:55
加精
简介:
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的上面有一定的相识程度。
...全文
4486 57 打赏 收藏 转发到动态 举报
写回复
用AI写文章
57 条回复
切换为时间正序
请发表友善的回复…
发表回复
hljlt77 2013-05-10
  • 打赏
  • 举报
回复
用了一段时间FX2,感觉还行吧,毕竟都集到JDK里了,只是现在组件少了点,以后会好的。
奈种烟草味 2013-05-08
  • 打赏
  • 举报
回复
这个必须顶,有好的大家一起分享,欣赏这种态度!看这里大神很多,希望能找到这样的大神,在自己工作之余愿意帮我们录制教学视频教程,教程针对14大类90多种软件的最近版本,包括project,visio,office,powerpoint,3DS max,vray,indesign,combustion,fireworks,autoCAD,delphi,ASP,oracle,android,matlab,director,ACD see,五笔等等等等,价格不错,一套视频一两万,有意愿的联系我呀!
u010550082 2013-05-03
  • 打赏
  • 举报
回复
不错不错的的
pcmlose 2013-05-03
  • 打赏
  • 举报
回复
groovy2007 2013-05-01
  • 打赏
  • 举报
回复
不错,一直没弄明白javaFX是啥
Mitos_Yggdrasill 2013-04-29
  • 打赏
  • 举报
回复
马克一下,谢谢
wuit 2013-04-29
  • 打赏
  • 举报
回复
u010498051 2013-04-28
  • 打赏
  • 举报
回复
谢谢!好东西!
liujiang917 2013-04-27
  • 打赏
  • 举报
回复
java的代码怎么看都是那么优雅
qqcc6546 2013-04-27
  • 打赏
  • 举报
回复
看不明白
黄土八爷 2013-04-26
  • 打赏
  • 举报
回复
感谢达人分享
xiaolouyiye2011 2013-04-26
  • 打赏
  • 举报
回复
「已注销」 2013-04-25
  • 打赏
  • 举报
回复
呵呵国际控股
443895525 2013-04-25
  • 打赏
  • 举报
回复
这个不错,我喜欢!!!
u010447108 2013-04-25
  • 打赏
  • 举报
回复
就对技术就对技术
u010447055 2013-04-25
  • 打赏
  • 举报
回复
liuh2013 2013-04-25
  • 打赏
  • 举报
回复
不知道是不是很稳定,还有跨平台等等。你懂得。
ftjavayp 2013-04-25
  • 打赏
  • 举报
回复
Tony90hou 2013-04-25
  • 打赏
  • 举报
回复
java UI除了用在移动平台上,还能按照这个方法处理吗?http://www.chinafanli.com/index.php?mod=help&act=index
IMS123456 2013-04-25
  • 打赏
  • 举报
回复
这个要顶呢
加载更多回复(26)

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧