首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有一种方法可以在数组中加载多个fxml,然后在按钮被按下的情况下显示其中一个,而不需要在javaFX中重新加载相同的fxml?

在JavaFX中,可以使用FXMLLoader来加载FXML文件并显示其中的内容。如果想在按钮被按下时显示不同的FXML文件,可以采用以下方法:

  1. 创建一个容器(例如Pane)来存放要加载的FXML内容。
  2. 使用FXMLLoader加载多个FXML文件并将它们添加到容器中,可以使用load方法加载每个FXML文件。
  3. 设置按钮的事件处理程序,在按钮被按下时,根据需要显示对应的FXML内容。
  4. 在事件处理程序中,通过容器的getChildren()方法获取容器中的子节点,并使用removeAll()方法将所有子节点从容器中移除。
  5. 根据需要的FXML文件,使用load方法加载对应的FXML文件,并将其添加到容器中。

以下是示例代码:

代码语言:txt
复制
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;

import java.io.IOException;

public class Main extends Application {
    private Pane container;
    private Button button1;
    private Button button2;

    @Override
    public void start(Stage primaryStage) throws Exception {
        container = new Pane();
        button1 = new Button("Load FXML 1");
        button1.setOnAction(event -> loadFXML("FXML1.fxml"));
        button2 = new Button("Load FXML 2");
        button2.setOnAction(event -> loadFXML("FXML2.fxml"));

        container.getChildren().addAll(button1, button2);

        Scene scene = new Scene(container);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    private void loadFXML(String fxmlFileName) {
        container.getChildren().clear(); // 清空容器中的子节点

        try {
            FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource(fxmlFileName));
            container.getChildren().add(fxmlLoader.load()); // 加载FXML文件并添加到容器中
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}

在上面的示例代码中,我们创建了一个容器Pane来存放要加载的FXML内容。通过button1和button2的事件处理程序,可以根据需要显示FXML1.fxml或FXML2.fxml中的内容。每次按钮被按下时,都会使用FXMLLoader来加载对应的FXML文件,并将其添加到容器中。

请注意,上述示例中的FXML文件需要在相应的目录下存在,并且需要合理设置FXML文件的布局和控制器。另外,此示例并未涉及云计算相关内容,仅回答了问题的JavaFX实现方案。如需了解更多关于云计算的内容,请提供相关问题或要求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaFX入门(二):JavaFXFXML

JavaFXML系列博客第一篇《JavaFX入门(一):我一个JavaFX程序 》我们用纯Java代码写了一个很简单JavaFXML程序,这一节我们使用FXML编写程序界面,然后用...通俗理解FXMLFXML一种以XML格式表示JavaFX界面对象文件,FXML文件一个元素可以映射到JavaFX一个类,每个FXML元素属性或者其子元素都可以映射为该对应JavaFXML...,不同是Scene控件都是FXML文件中进行声明然后使用FXMLLoader类进行了加载。...handleButtonAction()方法FXML文件说明,为ButtononAction属性值,我们handleButtonAction()方法中进行点击按钮处理逻辑。...我们运行程序,点击按钮结果如下: image.png 总结一JavaFX程序我们可以使用FXML文件编写前台界面,使用FXMLLoader类将FXML文件绑定到主程序。

8.6K30

JavaFX 简介

这是官方示例程序,我们可以参考JavaFX部分来学习如何使用。下面是其中一个分形JavaFX程序,点击上面的数字可以进入不同微观展示,感觉有一种看病毒微观世界感觉,很震撼。 ?...如何安装 只要你安装了最新版本JDK 8,那么就可以使用JavaFX库了。如果没有安装的话,那么赶快开始安装吧。 快速上手 第一个程序 新建一个项目,然后编写如下类,然后编译运行,即可看到结果。...FXML中用fx:id属性指定ID,可以控制器声明为一个类字段,通过这个字段就可以和界面组件进行交互。同样道理,onAction声明事件处理程序,控制器中就是一个方法。...主程序需要使用FXMLLoader来加载FXML资源,其他部分没有太大变化。...如果希望修改组件样式,JavaFX提供了CSS接口,让我们可以直接使用CSS文件修改样式。首先需要在FXML文件添加相应样式表引用。文件名前面的@表示这个CSS文件和FXML文件同一目录下。

5.7K81
  • javaFX(二)-使用gradle+jdk14创建javafx程序

    在上一篇文章,我们一起学习了jlink和jdk14模块化. 本篇文章,我们一起来学习gradle来新建一个javafxHello World 程序....本文中这段最重要 这段准备讲一, 为什么要学习javafx, 小刀学这个, 是出于自己兴趣,当时是公司用k8s,但是想看日志啥,还要先打开网页,登录阿里云,然后选对应集群,然后找到对应命名空间...一个还好, 要是有两个以上容器组,看日志就相当麻烦了. 然后我就做了这个可以直接查看k8s日志东东....写着写着, 就想,其实可以把改host, 连redis,连数据库这些简单小功能都做一起. 然后做着做着,就有了小刀平时朋友圈发工具....然后现在陆陆续续写了几个月了, 自我感觉对javaFX一些常用方法和坑都踩了一些,所以开始更新javaFX系列.

    4.3K20

    JavaFX之Scene Builder使用(开发一款GUI小工具原来这么简单)

    FXML一种以XML格式表示JavaFX界面对象文件,FXML文件一个元素可以映射到JavaFX一个类,每个FXML元素属性或者其子元素都可以映射为该对应JavaFXML类属性....4.3 自定义界面 下面随意做个栗子: 1.随便拉一个button控件到白色区域 2.然后可以右边properties属性栏更改这个按钮样式,外观等等,例如我这里随便改了个hehe。...~~ 可以根据自己功能需求click方法修改你点击按钮可以实现功能~ 五、拓展 之前我们创建那个Controller类通常需要实现Initializable接口,并重写里面的initialize...start()方法Controller类则可以重写init()方法,来做一些初始化相关工作。...拿上面的按钮例子来解释一标签属性是干嘛吧~ fx:id指就是这个控件id值,为Controller类控制这个控件 onAction指的是点击这个按钮就能实现什么功能 text指就是这个按钮文本

    9.7K31

    首发! JDK14之jpackage命令尝鲜

    引包基础上,要再声明一遍依赖 opens: 当前模块哪些包,可以反射....如fxml要声明处理controller , 每当fxml加载时候,都会去新建一个controller实例, 所以需要opens controller包名给javafx.fxml exports...一般用于别的模块依赖当前模块时候 jdk9及以后打包方式 jdk9及以后,打包方式,可以不局限于打jar包,可以把jdk这些模块给一起用jlink打成一个镜像....如上所示, 会在build目录,生成image镜像文件夹,然后其中有bin , conf, lib .然后用cmd运行bin目录Sunflower就可以了, 如下所示: 记住这朵Sunflower...最终如上图,可以看到生成dmg文件, mac上,进行安装就可以使用了 项目源码 一.Sunflower应用还在开发, 不久后会开放下载.

    3.8K30

    你还在用B端大模型?OUT 了!!!用混元打造专属智能化桌面应用

    开发环境配置 安装和配置 JavaFX 在这里提一,Java 8 内置了JavaFX,但是从Java 9开始 JavaFX 不再包含在 JDK ,而是作为一个独立模块提供。...为了将这一响应显示JavaFX 界面,需要将返回文本解析并格式化为消息气泡。 桌面应用程序,保持用户界面的流畅性是至关重要。当调用混元大模型时,可能会遇到网络延迟或响应时间较长问题。...下面,我们通过创建一个线程来执行与大模型通信操作。然后使用 Platform.runLater() 方法在网络请求完成后更新 UI 界面。...选择你模块,然后 Dependencies 标签页中点击 + 按钮,选择 Library,添加刚刚添加 JavaFX 库。...添加新 Artifact: 点击 + 按钮,选择 JAR -> From modules with dependencies。 弹出对话框,选择你主类(包含 main 方法类)。

    39231

    JavaFX入门(四):JavaFX布局(一)

    常见一个用例场景就是,软件主界面的上面是菜单栏和工具条,左边和右边可能是文档或者内容列表或者常用工具集合,然后中间是主要内容显示区,下面是状态栏。...SceneBuilder我们将一个控件拖拽到BorderPane时候,会有上下左右区域显示。 ? 我们在这5个区域放置5个标签,如下图: ? FXML代码如下: <?...GridPane GridPane有点像HTMLTable布局,属于比较灵活布局方式。默认情况下,控件均匀分布Grid或者说Table。但是我们可以指定一个控件所占行列,让其跨行和列分布。...我们ScrollPane中放置一个TextArea文本域控件,并且设置TextArea大小大于ScrollPane大小,这样就可以显示出水平和垂直滚动条了。如下图: ?...我们用SceneBuilder设计界面的时候,自动生成FXML文件实体元素和属性是和JavaFX类和属性是对应,我们可以通过FXML了解对应类一些属性和方法

    11.7K42

    JavaFX 11发行说明

    添加API以自定义Spinner控件步骤重复计时 JavaFX 11修改值步骤之前,必须在Spinner控件箭头按钮鼠标的默认持续时间。...initialDelay:在下一个值步骤之前必须在箭头按钮鼠标的持续时间。默认值现在为300毫秒。 repeatDelay:一个值步骤之后,每个连续步骤必须按鼠标的持续时间。...默认情况下,独立javafx模块不再具有权限 javafx.* 模块现在由应用程序类加载加载,默认情况下不再具有权限。...想要在启用安全管理器情况下运行应用程序需要使用“-Djava.security.policy”指定自定义策略文件,并为每个 javafx.* 模块授予所有权限。...:: getDefaultClassLoader调用类错误检查 FXML JDK-8129582 Linux上显示RTL语言文本时,控件显着减慢 图像 JDK-8195801 用MarlinFX

    6.6K60

    Avalonia:可信创.NET 跨平台UI,让JAVA失业者转.NET信创开发!

    它类似于JavaFXFXML,但语法更加简洁和强大。对于JAVA开发者来说,可以将XAML理解为一种声明式UI描述方式,类似于HTML之于Web开发。...你可以XAML声明事件处理程序,然后代码后备文件实现它: XAML: <Button Content="Click me!"...通过这个例子,我们可以看到MVVM模式如何在Avalonia优雅地实现。ViewModel处理所有的业务逻辑和状态管理,View只负责显示数据和捕获用户输入。...XAML直接绑定到ViewModel,不需要单独Controller。 使用了Command模式处理按钮点击,不是事件处理器。...Avalonia提供了一个现代化、高效且跨平台UI开发框架,特别适合那些需要在多个操作系统上部署应用开发者。 作为一个前JAVA开发者,你会发现许多熟悉概念和模式Avalonia中都有对应。

    1.6K20

    JavaFX入门(五):使用CSS样式美化你UI控件

    其对应命名为:将JavaFX类名成首字母小写,如果是由多个单词拼接类名,将每个单词原来大写首字母小写然后用连字符将多个单词连接。...其实类型选择器我们可以看做一种特殊类选择器。 CSS属性命名规则是:以-fx开头,然后连接该类属性,属性名称单词首字母小写,然后用连字符连接拼接属性单词。...一个类选择器样式可以应用到多个控件上。...对于JavaFX伪类元素我们可以查阅Oracle 在线文档进行浏览和查询。...---- 下面我们使用CSS美化一我们JavaFX入门(三):使用Eclipse开发JavaFX程序 》一节中使用SceneBuilder拖拽出来界面。

    10.1K50

    JavaFX——(第一篇:介绍篇)

    一个场景单独元素叫节点。每一个节点都有一个ID,样式类和边界值。除了根结点外,每一个节点都有一个父结点并且有0到多个子节点。...大多数应用,场景图中有很多容易使用组件使用。...例如:当一个按钮位置发生改变,那么pulse将被改变。 当一个pulse触发,那么相应改变也会同步渲染层。pulse能使应用开发者处理异步事件。...媒体引擎组件显示图1绿色部分,JavaFX 2进行了重新设计并且改进了性能,进行了相关扩展。...浏览器:在这种方式JavaFX嵌入到一个web页自动加载,它能通过页面的javascript与页面上元素进行交互。

    5.9K60

    使用Javafx生成虚假手机号身份证号小工具

    使用Javafx生成虚假手机号身份证号小工具一、介绍日常编码,我们需要生成一些虚假信息进行测试,其中就包括了手机号,身份证号那么如何生成这些虚假手机号,和身份证号码呢我打算用javafx来编写一个生成虚假手机号...,javafx足够了二、编码1)整体思路及页面布局我打算使用两个Tab,一个手机号、一个身份证号,来回切换Tab内容,放入一个按钮一个表格当我点击按钮时候,就会在表格刷新虚假数据,来进行展示表格有两列...重写了initialize方法,这个方法做一定初始化动作我这边比较简陋,设置了行内按钮,以及对表格内容进行了居中处理按钮点击,fxml文件,设置了两个按钮。...3)IdCardFakerUtil还差一个身份证工具类,我github上寻找有没有生成虚假数据时候,找到了javafaker但对中国大陆支持不是很好,所以我就自己写了一个工具类用来生成身份证号...,检查一四、最后对于生成身份证号这一块,最后一位校验码一直不对,最后是提问了腾讯混元才得已成功关于身份证号前六位地区码,本来想自己生成,但看了中华人民共和国行政区划代码后,还是决定弄一个数组生成可以看看

    20250

    JAVAFX(一) java Module 模块化简介

    前言 看过小刀最近朋友圈小伙伴应该都知道, 最近小刀一个桌面的工具包, 可以连k8s, 可以做图床等等, 其中用到技术栈就是 jdk14+javaFX....JDK14(Module)+javaFx JDK14(Module) 选用JDK14 , 主要是因为其中jpackage命令, 这个命令可以帮我们把java程序打包成winexe , 打包成mac...了. javaFX java身为一个跨平台语言,我们对其更多直观感受是win/mac 上写了一个springboot程序, 然后丢到win/linux服务器上去运行....不仅仅是服务端应用, 桌面端应用也可以这样跨平台. 用上面用jpackage打包之后应用, 不同平台上打的包, 可以不同平台上运行. 虽然UI/字符显示上会有些许差别,但是差别不怎么大....可以反射red.lixiang.tools.sunflower类,然后可以对应实例化,或者调用实例方法 Jlink java 模块化, jlink命令是核心,其作用就是把jdk我们需要模块抽出来

    2.4K10

    使用JavaNetbeans IDE上开发JavaFX4个深坑总结,开发必看!

    我以为可以用这个直接创建javafx项目,折腾了半天又是装其他jdk版本,就是重jfxsdk,哎,一点用都没有,后来找到一篇文章才知道,哎。...jar文件,不要点到目录文件夹一添加就完事了,那样添加不上,必须添加到指定jar,选择完成后,我们再去点击add JAR/Folder 那个按钮它如果是这样状态,代表我们添加成功,然后点击ok接下来我们创建一个...javafx demo可以看到这个文档全部报错,是因为jar包不存在缘故也就是找不到类接下来我们 libraries 上右键 点击 add library...找到我们刚刚创建library openjfx...-19 然后点击 add library然后你会看到 错误都消失了,接下来让我们运行一吧!...填写完成后如下所示,然后我们点ok但是这个事还没完,它还在报错,看下图:第四个深坑:这里必须要在这个项目的属性把 compile on svae默认选项给取消掉。

    2.7K00

    手把手系列:小程序插件开发与引用

    首先来科普一:插件是对一组 js 接口、自定义组件或页面的封装,用于嵌入到小程序中使用。插件不能独立运行,必须嵌入在其他小程序才能用户使用;第三方小程序使用插件时,也无法看到插件代码。...2、 插件目录结构通过开发者工具创建了插件类型小程序,也可以直接通过查看其中内容进一步了解小程序插件。一个插件可以包括若干个自定义组件、页面和一组 js 接口。...除去接口限制以外,自定义组件编写和组织方式与一般自定义组件相同,每个自定义组件由fxml, ftss,js和json四个文件组成。具体可以参考 自定义组件文档。...所有页面必须在配置文件pages段列出(参考上文)。除去接口限制以外,插件页面编写和组织方式与一般页面相同,每个页面由fxml,ftss,js和 json四个文件组成。...上传、发布插件开发者如果需要上传自有插件,需要进入「小程序管理-小程序插件」页面,点击其中「新增插件」按钮,并在其中分别输入插件名称,头像与介绍信息以完成插件新建。

    14210

    第68篇:javafx编写扫描器UI界面的线程死锁问题及坑点总结

    后来我终于想明白了,一个TabPane是由多个标签组成,当你双击关闭其中一两个标签时,tabPane所有索引id都变了,一个线程对于Tab标签for循环操作还在进行当中,而且还是按照原始索引去遍历...以下这个界面,按钮控件特别多,每个按钮功能类似,于是我用一个Map集合放置每一个按钮标题和按钮事件中用到关键值,然后一个for循环,遍历Map集合添加Button按钮组件,很快搞定这个界面,比Scenebuilder...对于jdk8javafx编译,很简单,直接编译成一个jar包就可以jdk8上双击运行,因为jdk是自带javafx,但是对于更高版本jdk,比如说jdk11或者jdk17,默认是不带javafx...首先使用idea 2022新建项目,JDK选择大于等于jdk8版本即可,小于jdk8不支持javafx可以看到idea 2022版本,已经自动pom.xml文件添加了javafx库了。...如下图所示,这是正确idea配置。按照上述操作编译出来jar包,可以完美运行不报错。 Part3 总结 1. 遇到线程安全问题,最好方法就是写个demo程序高并发下反复测试。 2.

    35431

    保姆级教程:写出自己移动应用和小程序(篇四)

    各流程如下图所示: FIDE 首页 新建小程序截图 FIDE 各部分截图 开始编辑小程序代码之前,先来熟悉一小程序各种结构与配置说明吧。...标签表示一个区块,用于跟其他区块分隔,类似 HTML 语言 标签。 表示一段行内文本,类似于 HTML 语言 标签,多个 标签之间不会产生分行。...其中给每个标签设置 class 类也类似于 HTML class。 五、预览小程序 首先我们需要下载 FinClip App,你可以打开官网或者扫描下面的二维码。 ​...如何在 FIDE 中使用小程序自定义 API 功能 自定义 API 主要有以下 2 个使用场景: 自定义 API 调试 Mock H5 调用原生API Mock 默认情况下,IDE 对于自定义 API...API 规则示例 H5 页面引入桥接 js-sdk 文件后,即可调用下面的注册方法了。

    1.7K30

    Web安全攻防入门系列 | 跨站脚本攻击和防范技巧 | 只看这一篇文章就够了

    图片我们看到script脚本被执行,我们在看一源代码图片alert(/test!!!/)script脚本加载到页面,这显然是有问题。...对),HttpOnly可以选择性添加任何一个cookie值上。...3.3.2 只需要一种编码吗XSS攻击主要发生在MVC架构View层。大部分XSS漏洞可以模板系统解决。...防御方法这种情况下如果变量是整改url,则先检查变量是否以http开头,保障不会出现伪协议xss攻击。在对变量进行URLEncode。...3.6 防御DOM Based XSSDOM Based XSS是一种比较特殊xss漏洞,前文中提到几种防御方法都不太合适,需要特别对待我们看一之前例子,看一DOM Based XSS是如何形成

    2K50

    IDEA与eclipse桌面配置基础

    配置MavenWindow–>Preferences–>Maven–>Installations–>add–>选择maven解压目录就好了,然后勾选新增maven,配置User Settings–...>选择mavensettings.xml文件EclipseJava–>Installed JREs,可以选择JRE所在目录,也可以选择JDK所在目录,选择JDK所在目录有个好处就是可以查看源码。...更改警告和错误突出显示文本背景颜色Window | Preferences | General | Editors | Text Editors | AnnotationsEclipse+JAVAFX1...;requires javafx.controls;requires javafx.fxml;requires javafx.graphics;requires javafx.media;requires...Lombok 简化臃肿代码插件实体类get/set/构造/toString/hashCode等方法,都不需要手动写Alibaba Java Coding Guidelines 阿里巴巴代码规范检查插件会按照阿里

    38330

    如何在FinClip开发小程序插件?

    ​在上一期“如何使用小程序插件”分享中有提到,FinClip开发者可以像开发小程序一样开发一个插件,开发出来插件,既可以提供给自己团队使用,也可以公开出来供其他开发者使用。...插件发布之后 FinClip 会托管插件代码,其他小程序调用时,上传插件代码会随小程序一起下载运行。本期就详细为大家分享一,如何在FinClip开发小程序插件?...除去接口限制以外,自定义组件编写和组织方式与一般自定义组件相同,每个自定义组件由fxml, ftss,js和json四个文件组成。具体可以参考 自定义组件文档。...除去接口限制以外,插件页面编写和组织方式与一般页面相同,每个页由fxml,ftss,js和 json四个文件组成。插件执行页面跳转时候,可以使用 navigator组件。...开发者如果需要上传自有插件,需要进入「小程序管理-小程序插件」页面,点击其中「新增插件」按钮,并在其中分别输入插件名称,头像与介绍信息以完成插件新建。

    1.1K20
    领券