首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

Java FX多窗口编程

后端 9.53KB 15 需要积分: 1
立即下载

资源介绍:

核心点:在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(); } }

资源文件列表:

multiWindown.zip 大约有25个文件
  1. multiWindown/pom.xml 2.82KB
  2. multiWindown/src/
  3. multiWindown/src/main/
  4. multiWindown/src/main/java/
  5. multiWindown/src/main/java/com/
  6. multiWindown/src/main/java/com/example/
  7. multiWindown/src/main/java/com/example/multiwindown/
  8. multiWindown/src/main/java/com/example/multiwindown/MainClass.java 3.86KB
  9. multiWindown/src/main/java/com/example/multiwindown/NewSceneController.java 370B
  10. multiWindown/src/main/java/com/example/multiwindown/NewStageController.java 872B
  11. multiWindown/src/main/java/com/example/multiwindown/PrimaryController.java 1.02KB
  12. multiWindown/src/main/java/com/example/multiwindown/ReceiveMsgController.java 649B
  13. multiWindown/src/main/java/com/example/multiwindown/ShowMsgController.java 537B
  14. multiWindown/src/main/java/module-info.java 182B
  15. multiWindown/src/main/resources/
  16. multiWindown/src/main/resources/com/
  17. multiWindown/src/main/resources/com/example/
  18. multiWindown/src/main/resources/com/example/multiwindown/
  19. multiWindown/src/main/resources/com/example/multiwindown/newSceneView.fxml 701B
  20. multiWindown/src/main/resources/com/example/multiwindown/newStageView1.fxml 448B
  21. multiWindown/src/main/resources/com/example/multiwindown/primaryView.fxml 1.33KB
  22. multiWindown/src/main/resources/com/example/multiwindown/receiveMsgView.fxml 519B
  23. multiWindown/src/main/resources/com/example/multiwindown/showMsgView.fxml 518B
  24. multiWindown/src/main/resources/META-INF/
  25. multiWindown/src/main/resources/META-INF/MANIFEST.MF 79B
0评论
提交 加载更多评论
其他资源 vue前端项目框架vue前端项目框架vue前端项目框架
vue前端项目框架
【2024电赛H题】自动行驶小车
一、前言 2024年全国电赛也是落下帷幕了,各省获奖名单陆续出炉,不知道大家有没有拿到满意的成绩。电赛总是充满遗憾的,但只要有所收获,就不算白来。电赛的故事不是三言两语能概括的,但我始终相信学无止境,因而在此将参赛方案整理并开源,也希望能和各位读者共同探讨,共同进步
基于百科荣创竞赛平台从车的重构代码
百科荣创从车的重构代码
适配于python3.9版本的GDAL轮子=3.8.4版本GDAL
GDAL-3.8.4-cp39-cp39-win_amd64.whl
CNGBdb上传数据不完全指北示例表格
CNGBdb上传数据不完全指北示例表格
高一学生eeid账号.zip
高一学生eeid账号.zip
基于wxauto的AI微信聊天助手
基于wxauto的AI微信聊天助手
unity游戏资源提取工具AssetStudio多语言版
AssetStudio(简称AS)是一款Github上的开源软件,可以解包未加密的资源数据 具体来讲,用于2d手游提取立绘是它最常用的功能.。 github开源地址:https://github.com/zhangjiequan/AssetStudio 基于https://github.com/SiMaLaoShi/AssetStudio_Tuanjie修改的汉化版,添加了多语言支持