如何在初始化期间从控制器获取阶段?

2023-11-20

我想从我的控制器类处理阶段事件(即隐藏)。所以我所要做的就是添加一个这样的监听器:

((Stage) myPane.getScene().getWindow()).setOn*whatIwant*(...);

但问题是初始化在这段代码之后立即开始:

Parent root = FXMLLoader.load(getClass().getResource("MyGui.fxml"));

在这段代码之前:

Scene scene = new Scene(root);
stage.setScene(scene);

Thus getScene返回空值。

我自己发现的唯一解决方法是添加一个监听器myPane.sceneProperty,当它变得不为空时,我得到场景,添加到它的windowProperty我的听众正在处理我终于检索到的舞台。这一切都以设置所需的侦听器来舞台事件而告终。

我觉得听众太多了。

这是解决我的问题的唯一方法吗?


您可以从以下位置获取控制器的实例FXMLLoader初始化后通过getController(),但是你需要实例化一个FXMLLoader而不是使用静态方法。

打电话后我会通过舞台load()之后直接到控制器:

FXMLLoader loader = new FXMLLoader(getClass().getResource("MyGui.fxml"));
Parent root = (Parent)loader.load();
MyController controller = (MyController)loader.getController();
controller.setStageAndSetupListeners(stage); // or what you want to do
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在初始化期间从控制器获取阶段? 的相关文章

  • 按日期对图表中的 X 轴进行排序 - JavaFX

    如何按日期对折线图 X 轴进行排序 现在我的折线图看起来像这样 我试图剪切日期并将其转换为 int 但现在我不知道该怎么办 datesToCompare addAll LastHoursAndDates keySet dates in St
  • JavaFX 如何在不改变线宽的情况下缩放路径的坐标?

    我目前正在制作具有缩放和平移功能的阶梯折线图 由于我需要处理的数据量非常大 因此每次调用layoutPlotChildren 时 我无法重新创建步骤线的整个路径 所以我的想法是创建一次路径元素 然后在缩放和平移事件时对其进行转换 到目前为止
  • JavaFX MediaPlayer - 音乐在 10 秒后停止

    这是代码 就像标题所说的 音乐在10秒后停止 我在vlc或其他程序中正常播放该文件 持续了5分钟多 public void music String bip src data fjordmusic mp3 Media hit new Med
  • JavaFX 中的 -fx-background-radius 和 -fx-background-insets

    我正在使用 JavaFX 我想自定义一个按钮 我看到了几个可以设计的特征 其中我发现了两个我不认识的人 button fx padding 5 22 5 22 fx border color 121212 fx border width 2
  • 如何在 JavaFX 中连接可观察列表?

    我所说的串联是指获得一个新列表 该列表侦听所有串联部分的更改 方法的目的是什么FXCollections concat ObservableList
  • 如何在场景生成器中设置控制器?

    我想用sceneBuilder for a javaFx应用 我有一个Package它被称作testPac其中有如图 1 所示的文件夹 我有一个fxml文件及其controller在 的里面view文件夹 现在 我不知道我必须在控制器盒内使
  • 即使在轴上进行自动量程调整,我也可以保留积分刻度线吗?

    我 偷 了一些代码here http fxexperience com 2012 01 curve fitting and styling areachart 拥有一个AreaChart我在 FXML 中使用了 平滑线条 它的工作原理如下
  • F# 中的数组初始化

    如何根据给定的记录类型在 F 中创建和初始化数组 假设我想创建一个包含 100 个 record1 记录的数组 e g type record1 value1 string value2 string let myArray Array i
  • 如何初始化一个最初大小未知的数组?

    假设我有这个 int x int x State Determined By Program const char pArray const int x 在使用 pArray 之前如何初始化它 因为Array的初始大小是由用户输入决定的 T
  • JavaFX ReadOnlyListProperty 不是只读的?

    这段代码抛出 UnsupportedOperationException 正如我所期望的那样 因为它是只读的 ListProperty
  • 使用哈希参数进行 DRY Ruby 初始化

    我发现自己经常在构造函数中使用哈希参数 尤其是在为配置或最终用户将接触到的其他 API 编写 DSL 时 我最终做的是类似以下的事情 class Example PROPERTIES name age PROPERTIES each p a
  • 如何初始化静态地图?

    你会如何初始化静态Map在Java中 方法一 静态初始化方法二 实例初始化 匿名子类 或者 还有其他方法吗 各自的优点和缺点是什么 这是说明这两种方法的示例 import java util HashMap import java util
  • Hibernate + SQLite 不创建数据库

    这是我的问题 我有一个使用 JavaFX Hibernate SQLite 的桌面应用程序 这是我的模型 Entity Table name usuario public class Usuario implements AbstractM
  • 从 MS Access 中提取 OLE 对象(Word 文档)

    我有一个 Microsoft Access 数据库 其中包含一个包含 Microsoft Word 文档的 OLE 对象字段 我试图找到代码来检索保存在 OLE 对象中的文件 以便用户可以从我的 JavaFx 应用程序中的按钮下载它 但没有
  • Play框架2.3.x服务器错误无法注册类

    我最近在服务器上上传了 Play 应用程序 问题是我可以通过命令运行应用程序激活器运行它编译并运行良好 当我尝试做的时候活化剂洁净阶段它也编译但之后目标 通用 阶段 bin name of myapp它会抛出一个错误 例如 Oops can
  • C中静态变量的初始化[重复]

    这个问题在这里已经有答案了 可能的重复 C中静态变量的初始化 https stackoverflow com questions 13251083 the initialization of static variable in c 我知道
  • 在html中绘制Konvajs容器Stage的边框边缘

    我正在使用 Konvajs 库 我正在尝试在主框架周围放置一个边框框Stage元素 但似乎无法使其工作 CSS仅适用于 div 和Konva Stageelement 似乎没有这方面的特定属性 是在舞台层的 4 个边框上添加线条形状的唯一方
  • 包含 ListView 更新、CellValueFactory 的 JavaFX TableView

    我确实有一个引擎 其中包含以下列表中的部件 UPDATE 我更新了文本以提供示例 我想要一个包含 2 列 名称 零件 的引擎 TableView 我希望将 Column 部分呈现为 TableCell 中的 ListView 因此我重写了该
  • 如何从表列javafx中删除行

    这些是我的表格列 Course and 描述 如果单击一行 该行变为 活动 突出显示 并且他们按下Delete按钮它应该删除该行 我该怎么做 我的代码Course列 以及我要添加什么事件侦听器到我的delete按钮 SuppressWarn
  • JavaFX 中的 MVC 模式与场景生成器

    我是 JavaFX 新手 根据我当前的设置 正在努力创建合适的 MVC 架构 我使用 Scene Builder 单击了一个 UI 并指定了一个 Controller 类 Startup public class Portal extend

随机推荐