首页下载资源后端Java FX多窗口编程

ZIPJava FX多窗口编程

weixin_520192869.53KB需要积分:1

资源文件列表:

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

资源介绍:

核心点:在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(); } }
100+评论
captcha