一个简单的问题,但我找不到答案。我有一个FXML文件,我想多次实例化。每个副本都需要自己的句柄,以便我可以更改其中的数据。假设,这与在刚创建的类上使用“new”关键字完全一样。
到目前为止,在我的尝试中,我已经能够创建fxml文件的多个副本,但只有一个控制器,因此调用方法意味着更改发生在所有副本上。
我是否必须为同一fxml文件的每个副本创建一个新控制器?
提前感谢
编辑
我正在研究这个想法的代码如下:
JavaFX:实例化控制器类时传递参数
以防万一一些背景可能会有所帮助:
我有一个场景,我想保存我制作的FXML文件的多个实例。在场景中设置一个FXML文件很容易,但创建多个(10-20)意味着我将有10到20个控制器和10到20个FXML文件实例。有没有更干净的方法?
我的希望是这样做:
public class SampleController implements Initializable {
@FXML
Label firstName;
@FXML
Label lastName;
html" target="_blank">public SampleController(Label firstname, Label lastname) {
this.firstName = firstname;
this.lastName = lastname;
}
@Override
public void initialize(URL location, ResourceBundle resources) {
}
}
然后打电话如下:
SampleController Row1 = new SampleController("my", "name");
并让这个命令将附加的FXML文件与我传递的数据一起加载到场景中。但这不起作用,它崩溃了,只有一个例外。
下面演示了构建fxml
文件的两个实例,并获取对其控制器的引用:
主要的fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.Pane?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller">
<children>
<Label fx:id="label" />
</children>
<opaqueInsets>
<Insets top="10.0" />
</opaqueInsets>
</Pane>
Controller.java其控制器
import javafx.fxml.FXML;
import javafx.scene.control.Label;
public class Controller{
@FXML
public Label label;
public void setText(String text) {
label.setText(text);
}
}
使用主的两个实例。fxml:
@Override
public void start(final Stage primaryStage) throws Exception{
FXMLLoader loader = new FXMLLoader();
Pane topPane = loader.load(getClass().getResource("xml/Main.fxml").openStream());
Controller controllerOfTop = loader.getController();
controllerOfTop.setText("Top");
loader = new FXMLLoader();
Pane bottomPane = loader.load(getClass().getResource("xml/Main.fxml").openStream());
Controller controllerOfBottom = loader.getController();
controllerOfBottom.setText("Bottom");
Scene scene = new Scene(new VBox(topPane, bottomPane));
primaryStage.setScene(scene);
primaryStage.show();
}
问题内容: 我有一个自动相互连接的Spring bean图。大大简化了图示: 所有这些bean都没有指定范围,这暗示它们是单例(使它们成为显式单例不会改变任何东西,我已经尝试过)。 问题在于,在实例化 单个应用程序上下文之后 ,的实例和包含的 不同 实例。怎么会这样 我试图为它创建public no args构造函数,并且调试已确认创建了多次。所有这些创建的堆栈跟踪都在这里。 我还尝试过为Spri
我有一张相互自动连线的Spring豆图。高度简化的插图: 所有这些bean都没有指定作用域,这意味着它们是单例(我已经尝试过了,让它们显式单例不会改变任何东西)。 问题是,在实例化单个应用程序上下文之后,Bar和Baz的实例包含不同的Foo实例。这怎么会发生? 我尝试为创建公共no args构造函数,并且调试已确认已多次创建。所有这些创建的堆栈跟踪都在这里。 我还尝试为Spring启用调试日志记录
问题内容: 我有一个由一个控制器控制的fxml文件。我想将控制器分成多个部分,就像放置在一个控制器中会产生很长的代码一样。不幸的是,fx:controller只能放在根目录中。我对如何分离控制器有什么建议吗? 问题答案: 我建议创建自定义控件-使用几个较小的FXML文件,而不是一个大FXML文件。 这是本教程: http://docs.oracle.com/javafx/2/fxml_get_st
我试图构建我的项目的JRE捆绑exe文件,这是一个游戏,在本教程的帮助下使用,它创建了文件,但每当我运行这个文件时,它会给出两条错误消息: 出现JNI错误,请检查您的安装。 Java异常发生(JVM启动器)。 附言:我的项目在文件夹中包含额外的JAR文件()。
问题内容: 我正在尝试创建多个图像文件的zip文件。我已经成功创建了所有图像的zip文件,但是不知何故,所有图像都被挂起了950字节。我不知道这里出了什么问题,现在我无法打开将图像压缩到该zip文件中。 这是我的代码。谁能告诉我这是怎么回事? 问题答案: 更改此: 对此: 并将缓冲区大小设置为1024字节:
我有一个jobIntentService创建一个文件以便在其中添加一些文本,但我得到错误。我不知道我做错了什么...下面是我的代码: 谢谢你的帮助!