javafx入门教程_java怎么学

(26) 2024-09-30 19:01:01

JavaFX 自学笔记


JavaFX 平台取代了 Swing 和 AWT
主要用于开发富因特网应用
JavaFX 可以无缝地在桌面或者WEB浏览器中运行
JavaFX 为支持触摸的设备提供多点触控支持
JavaFX 具有内建的 2D、3D 动画支持,以及视频和音频的回放功能,可以作为一个应用独立运行或者在浏览器中运行

基本架构

  1. 一个 Stage 对象是一个窗体,程序启动时,一个被称为主舞台的 Stage 对象由 JVM 自动创建
  2. JavaFX 应用剧院的类比来命名 Stage 和 Scene,可以认为舞台是一个支持场景的平台,节点如同在场景中演出的演员
    javafx入门教程_java怎么学 (https://mushiming.com/)  第1张

一个最简单的窗口

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.
THE END

发表回复