JavaFX 自学笔记
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.