我已经调整了控制器的构造函数和fxml,以便将控制器的fxml的所有设置都放在fxml中,除了FXML的构造和fxml的加载。这是我的控制器:
public class MainOverviewTab extends Tab {
@FXML private AnchorPane content;
public MainOverviewTab() {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("main_overview_tab.fxml"));
// fxmlLoader.setRoot(content);
// fxmlLoader.setController(this);
try {
fxmlLoader.load();
} catch (Exception e) {
e.printStackTrace();
}
}
和我的fxml文件:
<AnchorPane id="AnchorPane"
fx:id="content"
fx:controller="dominion.application.controller.MainOverviewTab"
...other settings >
<children>
....
</children>
</AnchorPane>
当调用fxmlLoader.load()并返回FXMLLoader时会发生stackoverflow fxmlLoader = new
FXMLLoader(…),然后再次调用fxmlLoader.load()…为什么会发生这种情况,以及如何保持控制器构造函数是否相同,而加载的fxml是否相同?还是不可能?
您不应在in构造函数中调用FXml加载器。因为当您使用FXml
loader加载fxml文件时,它将一次又一次地递归创建MainOverviewTab。因此会导致堆栈溢出错误。如果您从构造函数中删除代码并从显式方法中调用它将起作用。
public static void mainTabLoader() {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("main_overview_tab.fxml"));
// fxmlLoader.setRoot(content);
// fxmlLoader.setController(this);
try {
fxmlLoader.load();
} catch (Exception e) {
e.printStackTrace();
}
}
我已经调整了控制器构造函数和fxml,所以除了fxml构造和fxml加载之外,控制器的所有fxml设置都在fxml中。这里是我的控制器:
我正在遵循JavaFX教程并编写了以下代码。 将导入所有必需的头文件。 主要的Java语言 主要的fxml(使用SceneBuilder创建) 堆栈跟踪 我尝试了与getResource(“Main.fxml”)的每一种组合,包括以各种可能的方式使用相对路径和绝对路径,但我还是遇到了错误。代码与该教程完全相同。
问题内容: 因此,我正在为学校项目编码此聊天客户端,现在我需要使用JavaFX实现GUI。我已经在Scene Builder中构建了外观简洁的GUI。现在,无论何时客户端收到一条消息,它都应该在控制器中调用一个方法,以将接收到的字符串附加到TextField上。 但是,当我尝试从FXML文件加载控制器时,出现此错误: 这是获取控制器并在其中调用方法的代码: 最后,我的FXML文件: 加载徽标图像时
问题内容: JDBC有问题。 我有以下代码: 我收到以下错误: 我的连接字符串是 jdbc:oracle:oci:@..... Oracle版本为11g。 从错误消息看来,似乎缺少了一些东西,但是: 当我从同一个blob列(带有blob.getBytes)读取时,一切正常。 即时客户端的DLL位于库路径中(正确)。 这是我的类路径中Oracle JDBC JAR的清单: 问题答案: 看起来即使驱动
问题内容: 当我运行以下代码时: 我得到一个异常说: 为什么会出现此异常? 编辑:tmpList是一个LinkedList,其每个节点都包含DepConfAttr类型的对象。 我正在基于内存(首先是最高内存)对tmpList进行排序,这是DepConfAttr对象的属性之一。 上面的代码反映了我要通过以下代码实现的目标 问题答案: 为什么会出现此异常? 您要遍历列表,而不是通过迭代器从列表中删除一
问题内容: 我正在使用ant生成javadocs,但是一遍又一遍地获取此异常-为什么? 我正在使用JDK 1.6.0_06 版本。 问题答案: 看来这已被报告为Java错误。这似乎是由于使用了第三方库(例如JUnit)中的注释,而在Javadoc调用中不包含带有该注释的jar。 如果是这种情况,只需在javadoc上使用-classpath选项并包括额外的jar文件。