JavaFX 平台取代了 Swing 和 AWT
主要用于开发富因特网应用
JavaFX 可以无缝地在桌面或者WEB浏览器中运行
JavaFX 为支持触摸的设备提供多点触控支持
JavaFX 具有内建的 2D、3D 动画支持,以及视频和音频的回放功能,可以作为一个应用独立运行或者在浏览器中运行
基本架构
- 一个 Stage 对象是一个窗体,程序启动时,一个被称为主舞台的 Stage 对象由 JVM 自动创建
- JavaFX 应用剧院的类比来命名 Stage 和 Scene,可以认为舞台是一个支持场景的平台,节点如同在场景中演出的演员
一个最简单的窗口
public class Main extends Application {
public static void main(String[] args) {
//执行时自动调用 start() 方法 launch(args); } @Override public void start(Stage primaryStage) throws Exception {
//为主舞台设置标题 primaryStage.setTitle("我的第一个JavaFX程序"); //舞台上必须有场景,场景上放置组件(一般放置一个根面板) Scene scene = new Scene(new Pane(), 800, 600); //将场景设置在主舞台上 primaryStage.setScene(scene); //显示主舞台 primaryStage.show(); } }
可以同时打开两个窗口
public class Main extends Application {
public static void main(String[] args) {
//执行时自动调用 start() 方法 launch(args); } @Override public void start(Stage primaryStage) throws Exception {
//为主舞台设置标题 primaryStage.setTitle("我的第一个JavaFX程序"); //舞台上必须有场景,场景上放置组件(一般放置一个根面板) Scene scene = new Scene(new Pane(), 800, 600); //将场景设置在主舞台上 primaryStage.setScene(scene); //实例化另一个舞台 Stage stage = new Stage(); stage.setTitle("另一个舞台"); stage.show(); //显示主舞台 primaryStage.show(); } }
也可以定义一个舞台类,更改主舞台
public class MainStage extends Stage {
private static int WIDTH = 800; private static int HEIGHT = 600; private Scene scene = null; //实例化一个按钮 private Button button = new Button("测试按钮"); public MainStage(){
setTitle("自己实现的舞台对象"); initComponents(); } private void initComponents() {
Pane root = new Pane(); button.setLayoutX(100); button.setLayoutY(100); //将按钮放在面板上 root.getChildren().add(button); //将面板添加在场景上 scene = new Scene(root, WIDTH, HEIGHT); setScene(scene); } }
public class Main extends Application {
public static void main(String[] args) {
//执行时自动调用 start() 方法 launch(args); } @Override public void start(Stage primaryStage) throws Exception {
primaryStage = new MainStage(); primaryStage.