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

Java FXML加载视图供以后使用

酆耀
2023-03-14
@FXML private Pane contentPane;
@FXML 
public void toHome() {
   contentPane.getChildren().setAll(FXMLLoader.load(getClass().getResource("../fxml/Home.fxml")));
}
@FXML 
public void toBrowse() {
   contentPane.getChildren().setAll(FXMLLoader.load(getClass().getResource("../fxml/Browse.fxml")));
}

谢谢,

巴特

共有1个答案

万俟宜修
2023-03-14

我想你可以用这里的缓存。因此,基本上,将加载的fxml存储在HashMap中。

如果它不在那里,加载它并将其存储到hashmap中,否则从hashmap中获取它并使用它。这篇文章解释了缓存加载的FXML对象是很好的,例如,当谈到性能时,请参见这里提到的“缓存FXML加载节点树和控制器”一章。

private static Map<String, Object> map = new HashMap<>();

@FXML
private Pane contentPane;

@FXML
public void toHome() throws IOException {
    Object loaded = map.get("home");
    if (loaded == null) {
        loaded = FXMLLoader.load(getClass().getResource("../fxml/Home.fxml"));
        map.put("home", loaded);
    }

    contentPane.getChildren().setAll((Node) loaded);
}

(我必须向节点插入强制转换,否则它无法编译。我不确定这是否总是正确的)

 类似资料:
  • Flask 通常配合装饰器使用,装饰器使用非常简单,而且使您可以将 URL 和处理它的函数 放在一起。然而这种方法也有一种不足: 这就意味着您使用装饰器的代码必须在前面导入, 否则 Flask 将无法找到您的函数。 这对于需要很快导入的应用程序来说是一个问题,这种情况可能出现在类似谷歌的 App Engine 这样的系统上。所以如果您突然发现您的引用超出了这种方法可以处理 的能力,您可以降级到中央

  • 嗯,我有以下模式:< br > > < li> 扩展JFrame的Java类,它实例化包含返回空白屏幕的my graph的另一个类。 第二个是一个普通类,其中包含方法main,调用包含我的图形的相同类,该类返回一个普通图形。 现在,为什么JFrame类返回空白图? 我的图形类代码。 大多数人会说,你为什么要在这里创建一个JPANEL?我没有找到如何设置它的默认大小,但即使从里面删除jpanel,它

  • 我使用滑翔库来显示网格视图中的图像,但是在我的图像视图中显示了注释。 E/Glide:class com。邦普泰克。滑行负载发动机GlideException:无法加载资源 我的代码在使用位图时工作正常。这是我的密码:

  • 使用Android Universal Image Loader和RecyclerView异步加载图像,我会遇到与其他人相同的错误,图像会混淆;直到它们都加载了一个缓存。 适配器的代码: 我知道它必须是中的某个东西,因为它需要更新每个视图,但我没有正确地更新。 这与图书馆无关。在不缓存图像的情况下执行延迟加载时,也会发生相同的行为。错误是因为我不知道如何更新中的。 谢谢!

  • 当我尝试将Image URL解析到ImageView中时,回收器视图不显示,活动为空。我正在使用Picasso将图像加载到适配器类中的onBinfViewHolder方法中。这是相关代码 代表: } RepRvAdapter: } 解析JSON数据的方法: 现在,我有一行解析图像URL的代码被注释掉了。行取消注释后,活动将不再显示。如何获取要在ImageView中解析和显示的图像url?我认为这可

  • 我试图在我的设备上运行这个非常简单的应用程序(使用maps API V2),出于某种原因,当我试图使用MapView时: 使用java文件: 瓷砖装不上!!但是当我使用fragment:fragment Android:id=“@+id/map”Android:name=“com.google.android.gms.maps.supportMapFragment”Android:layout_w