java - javafx 对象放入数组后会丢失引用的问题

标签 java javafx fxml

所以我试图修改我的 Controller 类中的一些圆圈,并且我已将这些圆圈链接到我的 fxml 文件圆圈,但是当我尝试将它们添加到圆圈数组以便于管理时,它们似乎失去了引用。例如我有:

@FXML
private Circle circle1 = new Circle();

public void addNumber(ActionEvent event){
circle1.setLayoutX(355.0);
circle1.setLayoutY(100.0);
circle1.setVisbility(true);
}

上面的方法成功地在给定的坐标处弹出了一个圆圈。但是以下方法不起作用:

@FXML
private Circle circle1 = new Circle();

@FXML
private Circle[] c = {circle1};

public void addNumber(ActionEvent event){
c[0].setLayoutX(355.0);
c[0].setLayoutY(100.0);
c[0].setVisbility(true);
}

这行不通!尝试了数组,尝试了数组列表,尝试了链接列表,对circle1的引用丢失了。我是 JAVAFX 的菜鸟,所以这可能是一个简单的修复,但我尝试进行了一些研究,尝试了不同的实现以使其正常工作,但我似乎找不到解决方案。 任何帮助将不胜感激!

最佳答案

您在标有 @FXML 的字段中创建实例,这是错误的,加载 FXML 时该字段将被覆盖。这也是数组不起作用的原因,因为数组中的元素永远不会附加到场景图

关于java - javafx 对象放入数组后会丢失引用的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26563347/

相关文章:

java - 如何确定 Java 方法是否修改了作为参数传递的对象

java - 将 Grails 应用程序从 2.2 升级到 2.4 时出错

Java 垃圾收集,基于类的 Tenuring

controller - 有多个 FXML 文件(在 SceneBuilder 中创建),但只有一个 Controller 。每个场景是否加载它自己的 Controller 副本?

JavaFX 无法编辑文本

java - 在 C# 中是否有 'string.Insert()' 的 Java 等效或自定义方法

没有 JRE 的 JavaFX DEB 包不起作用

JavaFX引用主数组列表

java - 为什么在 FXML 中添加两个 ColumnConstraint?

JavaFX FXML - 使用 fx :id 获取 MenuItem