博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaFX中基于Stage的界面跳转
阅读量:2058 次
发布时间:2019-04-29

本文共 2163 字,大约阅读时间需要 7 分钟。

  • 创建Stage,
/** 工厂 */public class Factory {
public Stage createStage(String title, int width,int height, String file) throws IOException { //URL url = getClass().getResource("../../../../" + file); URL url = Factory.class.getClassLoader().getResource(file); Parent root = FXMLLoader.load(url); Stage stage = new Stage(); stage.setTitle(title); stage.setScene(new Scene(root, width, height)); stage.setResizable(false); //设置在stage关闭时需要进行的操作 stage.setOnCloseRequest(new EventHandler
() { @Override public void handle(WindowEvent event) { //此处当stage关闭时,同时结束程序,避免stage关闭后,程序界面关闭了,但后台线程却依然运行的问题 System.exit(0); } }); //初始化Stage时将该实例添加进StageManager的容器中,方便管理 Context.stageManager.addStage(file.split("\\.")[0], stage); return stage; }}/*注意: 如上述代码所示,获取fxml文件的URL有两种方式,第一种方式只能将fxml文件放在文件夹中才能获取到,一旦打包为jar包后,如果将fxml文件也打包进了jar文件,那么就无法获取到。 第二种方式,即使打包进jar文件中,也依然能够正常获取到,所以个人推荐第二种方式访问fxml文件。*/
  • 基于Stage的跳转
/** Stage管理类 */public class StageManager {
private Map
stageMap = new HashMap<>();//存放所有的Stage实例 public void addStage(String name, Stage stage){ stageMap.put(name, stage); } public Stage getStage(String name){ return stageMap.get(name); } public void closeStage(String name){ stageMap.get(name).close(); } //实现Stage的跳转,从currentStage跳转到targetStage public void jump(String currentStageName, String targetStageName){ stageMap.get(currentStageName).close(); stageMap.get(targetStageName).show(); } public void release(String name){ stageMap.remove(name); }}
  • 全局上下文
//在全局上下文中,持有StageManager和Factory的实例,使用时从此处获取public class Context {
public static StageManager stageManager = new StageManager(); public static Factory factory = new Factory();}
  • 应用
//访问test1.fxml创建Stage,并显示Stage test1 = Context.factory.createStage("我是标题", 800, 600, "test1.fxml");test1.show();//访问test2.fxml创建StageContext.factory.createStage("我是标题", 800, 600, "test2.fxml");//从test1跳转到test2Context.stageManager.jump("test1", "test2");

转载地址:http://qvtlf.baihongyu.com/

你可能感兴趣的文章
安装系统之一 U盘启动盘制作
查看>>
安装系统之二 U盘启动盘制作---UEFI版
查看>>
安装系统之四 U盘装GHOST XP教程
查看>>
安装系统之五 U盘装原版XP教程
查看>>
安装系统之六 U盘装GHOST WIN7教程
查看>>
安装系统之八 U盘装GHOST WIN8教程
查看>>
安装系统之九 U盘装原版WIN8教程
查看>>
安装系统之三 U盘启动盘建立磁盘分区教程
查看>>
系统安装之十 U盘安装原版win10
查看>>
安装系统之十一 UEFI和Legacy及UEFI+Legacy启动的区别
查看>>
树莓派屏幕---------Android手机作为树莓派的屏幕
查看>>
嵌入式 知识点 积累 (一)
查看>>
嵌入式 知识积累 (二) 之 三个学习阶段
查看>>
嵌入式 知识积累(三) 之 基本技能
查看>>
嵌入式 知识积累(四) 之 硬件开发的基本过程
查看>>
嵌入式 知识积累(五)之硬件工程师具备基本技能
查看>>
中小型园区网络的设计与实现 (一)
查看>>
别人的难题,就是你的价值。
查看>>
中小型园区网络的设计与实现 (二)
查看>>
中小型园区网络的设计与实现 (三)
查看>>