当前位置: 首页 > 知识库问答 >
问题:

JavaFX类控制器场景参考

师赤岩
2023-03-14
@FXML
private AnchorPane anchor; 

Scene scene = anchor.getScene();

但我想要一个不引用AnchorPane控件的解决方案。

共有1个答案

孙翰墨
2023-03-14

为什么不呢?Controller是一个抽象类,除非你故意让他知道,否则他不知道UI。

节点(包括AnchorPane)则是另外一回事,它们在SceneGraph外部几乎不存在。所以可以向Node询问他的父母或场景。

如果您仍想单独处理这些问题,则有以下几种方法

public class MyController {
    private void Scene scene;
    public void setScene(Scene scene) { this.scene = scene; }

}

// loading code
FXMLLoader fxmlLoader = new FXMLLoader();
AnchorPane root = (AnchorPane) fxmlLoader.load(getClass().getResource("MyApp.fxml"));
MyController myController = (MyController) fxmlLoader.getController();
myController.setScene(scene);
 类似资料:
  • 问题内容: 有什么方法可以从关联的类控制器获取FXML加载文件的Scene对象。 我正在做这样的事情: 但是我想要一个不引用AnchorPane控件的解决方案。 问题答案: 为什么不?Controller是一个抽象类,除非您有意让他知道,否则他不了解UI。 节点(包括AnchorPane)是另一个故事,它们几乎不存在于场景图的外部。因此,最好向Node询问有关其父母或场景的信息。 如果您仍然想单独

  • 问题内容: 大家好,我正在构建一个JavaFX项目并正在使用JavaFX Scene Builder2。我想将控制器链接到我的fxml文件,但是我看不到在Scene Builder 2中将控制器添加到我的fxml文件的可能性。我想知道是否有人可以帮助我。谢谢。 问题答案: 我偶然在SceneBuilder 2中找到了控制器属性。关闭左侧的层次结构菜单时,将显示“控制器”菜单,可以在其中声明我的控制

  • 我正在设计一款跳棋游戏,一旦游戏结束,一个新窗口就会打开,你可以开始一个新游戏,也可以退出。我对JavaFX了解不多,我一直在努力让我的代码正常工作,但我没有成功。。。 我有一个困难,我的电路板没有显示为fxml文件,但它是用Java代码创建的,并放在我的边框窗格的中心。边框窗格的顶部是fxml文件。然后,游戏结束后的另一个窗口也是另一个fxml文件: 这个fxml文件的Controller类如下

  • 我是新手,正在尝试学习JavaFX和FXML。我的大部分应用程序逻辑都在FXMLController类中,基类几乎是空的,除了NetBeans IDE生成的基本代码,如下所示 我有一个ID为input1的元素,类型为TextField。如何通过ID访问此(或任何其他)控件?(请记住,我是控制器类而不是主类)。 我在下面找到了这个问题,这正是我要找的,但情况不同,因为它们在定义< code>scen

  • 我想制作一个可以在场景之间切换的基本GUI。我知道以前有人问过这个问题,相信我,我已经试着寻找解决方案好几个小时了,但都没有结果,所以我求助于此。 以下是相关代码: 这里是主端: 当我运行它时,它给出了这个错误: 所以我知道这是由处理按钮动作的方法引起的。我可以成功地使用操作制作其他按钮,只要它们没有参数。 似乎每当我添加这个参数来访问动作事件时,这个方法就不能被识别。我认为我在设置主应用程序或控

  • 我是的新手,我有一个和多个场景,我可以使用在它们之间切换,所有工作都很好,直到我尝试在单击菜单项时做一些事情而不是显示场景。 我试图通过使用方法类中调用,在那里我有菜单项action methods,我调用在单击菜单项时将文本写入方法中的文本字段,但在加载该场景的控制器后,什么都没有发生。这是我的代码: 类 家庭控制器类 我知道我可能忽略了一些东西,但我不知道它是什么,帮助将不胜感激。