下载资源后端资源详情
multiWindown.zip
大小:9.53KB
价格:10积分
下载量:0
评分:
5.0
上传者:weixin_52019286
更新日期:2025-09-22

Java FX多窗口编程

资源文件列表(大概)

文件名
大小
multiWindown/pom.xml
2.82KB
multiWindown/src/
-
multiWindown/src/main/
-
multiWindown/src/main/java/
-
multiWindown/src/main/java/com/
-
multiWindown/src/main/java/com/example/
-
multiWindown/src/main/java/com/example/multiwindown/
-
multiWindown/src/main/java/com/example/multiwindown/MainClass.java
3.86KB
multiWindown/src/main/java/com/example/multiwindown/NewSceneController.java
370B
multiWindown/src/main/java/com/example/multiwindown/NewStageController.java
872B
multiWindown/src/main/java/com/example/multiwindown/PrimaryController.java
1.02KB
multiWindown/src/main/java/com/example/multiwindown/ReceiveMsgController.java
649B
multiWindown/src/main/java/com/example/multiwindown/ShowMsgController.java
537B
multiWindown/src/main/java/module-info.java
182B
multiWindown/src/main/resources/
-
multiWindown/src/main/resources/com/
-
multiWindown/src/main/resources/com/example/
-
multiWindown/src/main/resources/com/example/multiwindown/
-
multiWindown/src/main/resources/com/example/multiwindown/newSceneView.fxml
701B
multiWindown/src/main/resources/com/example/multiwindown/newStageView1.fxml
448B
multiWindown/src/main/resources/com/example/multiwindown/primaryView.fxml
1.33KB
multiWindown/src/main/resources/com/example/multiwindown/receiveMsgView.fxml
519B
multiWindown/src/main/resources/com/example/multiwindown/showMsgView.fxml
518B
multiWindown/src/main/resources/META-INF/
-
multiWindown/src/main/resources/META-INF/MANIFEST.MF
79B

资源内容介绍

核心点:在MainClass初始化窗口时,将MainClass的引用传给相应窗口的控制器。之后在每个窗口的控制器中通过MainClass的引用完成从窗口的打开以及主从窗口的通信。
package com.example.multiwindown;import javafx.application.Application;import javafx.fxml.FXMLLoader;import javafx.scene.Scene;import javafx.stage.Stage;import java.io.IOException;public class MainClass extends Application { //主窗口 private Stage primaryStage; //主控制器 private PrimaryController primaryController; //start阶段进行初始化 @Override public void start(Stage stage) throws IOException { primaryStage = stage; this.showPrimaryStage(); } public void showPrimaryStage() { FXMLLoader fxmlLoader = new FXMLLoader(MainClass.class.getResource("primaryView.fxml")); Scene scene = null; try { scene = new Scene(fxmlLoader.load(), 800, 600); } catch (IOException e) { e.printStackTrace(); } PrimaryController controller = fxmlLoader.getController(); //------------------------------------------------- controller.setMain(this); //------------------------------------------------- this.primaryController = controller; primaryStage.setTitle("Hello!"); primaryStage.setScene(scene); primaryStage.show(); } //打开新窗口 public void openNewStage() { try { FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("newStageView1.fxml")); Scene scene = new Scene(fxmlLoader.load()); NewStageController controller = fxmlLoader.getController(); Stage newStage = new Stage(); newStage.setScene(scene); newStage.setTitle("新的窗体"); //------------------------------------------------ controller.setMain(this, newStage); //------------------------------------------------ newStage.show(); } catch (IOException e) { e.printStackTrace(); } } //切换主窗口的Scene public void changePrimaryScene() { try { FXMLLoader loader = new FXMLLoader(getClass().getResource("newSceneView.fxml")); Scene scene = new Scene(loader.load()); NewSceneController controller = loader.getController(); //------------------------------------------- controller.setMain(this); //--------------------------------------- primaryStage.setScene(scene); } catch (IOException e) { e.printStackTrace(); } } //打开展示信息窗口 public void openSendStage(String msg) { try { FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("showMsgView.fxml")); Scene scene = new Scene(fxmlLoader.load()); Stage stage = new Stage(); ShowMsgController controller1 = fxmlLoader.getController(); //--------------------------------------------- controller1.init(this, stage); //---------------------------------------------- controller1.showMessage(msg); stage.setScene(scene); stage.setTitle("show msg window"); stage.show(); } catch (IOException e) { e.printStackTrace(); } } //打开发送窗口 public void openReceiveStage() throws IOException { FXMLLoader loader = new FXMLLoader(getClass().getResource("receiveMsgView.fxml")); Scene scene = new Scene(loader.load()); Stage stage = new Stage(); ReceiveMsgController controller = loader.getController(); //------------------------------------------------------- controller.init(this.primaryController, stage); //------------------------------------------------------- stage.setScene(scene); stage.setTitle("send Message"); stage.show(); } public static void main(String[] args) { launch(); }}

用户评论 (0)

发表评论

captcha