目录
Java FX 简介
Hello Friend
Hello World
本文环境:IDEA 14 + Java JDK 1.8
Java FX 简介 1、JavaFX 是一个强大的图形和多媒体处理工具包集合,它允许开发者来设计、创建、调试和部署富客户端程序,并且和 Java 一样跨平台。
2、Javafx 是 Oracle 在2008年主推的下一代 GUI 框架,功能强大,并且持续更新
3、Swing 是Java 比较老的GUI,样式难被用户接受,且 Oracle已经明确说明不再更新Swing。显然比swing更古老的awt就更不用说了
4、JavaFX 仍然可以使用 Swing 程序,通过SwingNode即可
5、原来开发 JavaFX 程序,需要单独下载 JavaFX 的SDK,但是现在不需要了。从 JDK 7u6 开始,JavaFX 被内置到 Java SE中;从Java8开始,JavaFX 版本更新为JavaFX8。现在开发Java FX程序可以像以前开发awt、swing一样直接进行开发
Java FX 历史
JavaFX 即可以用来开发桌面程序也可以开发移动设备上的程序,但移动应用平台都有自己的SDK,比如开发Android和ISO应用都会使用原生地API,所以JavaFX目前主要用于开发桌面应用程序!6、学习网址
JavaFX 2.0之后的版本摒弃了JavaFX Script语言,而作为一个Java API来使用。因此使用JavaFX平台实现的应用程序将直接通过标准Java代码来实现。
从JDK 7u6 开始,JavaFX被内置到Java SE中,原来开发JavaFX程序,需要单独下载JavaFX的SDK,但现在不需要了。
从Java JDK8 开始,JavaFX的版本也更新为JavaFX8。
JavaFX中文网:http://www.javafxchina.net/main/Hello Friend 创建Java SE项目
易百教程:https://www.yiibai.com/javafx/
文章图片
文章图片
代码实现
/**
* Created by Administrator on 2018/6/22 0022.
* 下面这些javafx.*下面的API都是JDK8、JRE8中内置好的,直接调用即可
*/
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;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Java作为GUI(图形化用户界面)程序
* 1、入口必须继承Application抽象类
*/
public class HelloFriend extends Application {
/**
* atomicInteger:用于统计用户单击按钮的次数
*/
private static AtomicInteger atomicInteger = new AtomicInteger(0);
/**
* 2、然后实现的它的start抽象方法
*
* @param primaryStage
*/
@Override
public void start(Stage primaryStage) {/**创建一个按钮控件
* 并设置按钮上的文字,同时为他绑定单击事件,鼠标点击按钮后,控制台输出"Hello Friend"*/
Button btn = new Button();
btn.setText("Say 'Hello Friend'");
btn.setOnAction(new EventHandler() {
@Override
public void handle(ActionEvent event) {
System.out.println(atomicInteger.addAndGet(1) + ":Hello Friend");
}
});
/**创建一个堆栈面板,面板包含控件*/
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) {
/**
* GUI程序必须从入口的main方法进入并启动
* launch是Application中的,调用它则可启动此GUI程序了
*/
launch(args);
}
}
效果演示
文章图片
Hello World 1、上面是使用 Java SE 的方式开发的 JavaFX 应用,完全是可以的,然而 JavaFX 作为一个强大的类库,有着自己的架构,很多内容也是固定的。
2、如同可以直接开发安卓项目一样,IDEA 也可以直接创建 JavaFX 应用
3、如果不使用 JavaSE 方式开发 JavaFX 的话,Eclipse 要安装插件才可以,但是 IDEA 直接可以开发
创建 JavaFX 应用
文章图片
Controller:默认这个类里面是空的
Main:为整个应用的程序入口
sample.fxml:这是应用窗口的布局文件,也可以叫资源文件
文章图片
Controller 默认内容是空的:
public class Controller {
}
sample.fxml 是窗口的布局文件,可以看到下面的
Main 入口类可以看到整个窗口默认是从布局文件进行加载布局的,然后设置了窗口的标题以及大小,但因为布局文件中没有定义内容,所以应用启动之后,窗口是空的。
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(root, 300, 275));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
【IDEA_WebStorm|Java FX 简介 与 IDEA JavaFX 开发入门】运行效果
文章图片
推荐阅读
- JavaFX 加载图片(使用Intellij IDEA)
- javaFX的一些坑
- jxbrowser错误The Chromium profile directory is already used/locked by another BrowserContext instance
- javaFX 8 包和类的统计