gpt4 book ai didi

java - 在 JavaFX 中的 Pane 之间切换

转载 作者:IT老高 更新时间:2023-10-28 20:51:26 24 4
gpt4 key购买 nike

我正在尝试使用 FXML 在 JavaFX 中制作 Java 程序。但是我在布局管理方面遇到了麻烦。我想在 Pane 之间切换,就像我习惯使用 CardLayout 一样,但我似乎无法获得它。

我搜索了一下,没有找到任何答案。

JavaFX 中是否有任何等效的 CardLayout?如果是这样,你能给我举个例子吗?这对我的夜晚很有帮助!

这是我的 FXML 代码

    <AnchorPane id="anchorPane" prefHeight="324.0" prefWidth="530.0" xmlns:fx="http://javafx.com/fxml" fx:controller="javafxapplication2.SampleController">
<children>
<Pane fx:id="mainScreen" layoutX="6.0" prefHeight="324.0" prefWidth="518.0">
<children>
<Button layoutX="254.0" layoutY="37.0" mnemonicParsing="false" text="Button" />
</children>
</Pane>
<Pane fx:id="loginScreen" prefHeight="324.0" prefWidth="530.0">
<children>
<TextField id="password" fx:id="username" layoutX="142.0" layoutY="106.0" prefWidth="200.0" />
<TextField fx:id="password" layoutX="142.0" layoutY="140.0" prefWidth="200.0" />
<Label fx:id="label" layoutX="126.0" layoutY="120.0" minHeight="16.0" minWidth="69.0" />
<Button fx:id="button" layoutX="213.0" layoutY="196.0" onAction="#handleButtonAction" onKeyPressed="#handleButtonAction" text="Login" />
</children>
</Pane>
</children>
</AnchorPane>

最佳答案

非动画过渡

如果您不需要 Pane 之间的动画过渡,那么您可以:

  1. 通过创建新场景替换整个场景和set that scene on your Stage
  2. 仅替换父布局中的特定 Pane ,方法是从其父 Pane 中移除旧 Pane 并添加新 Pane (通过操作父 Pane 的 children list)或
  3. 将所有 Pane 放在 StackPane 中,然后将要显示的 Pane 移动到 stack's child list 的顶部.

动画过渡

如果您想在 Pane 之间进行动画转换,请参阅 Angela Caicedo 的两部分系列文章,介绍在 JavaFX 中管理多个屏幕:

Angela 的解决方案是使用 StackPane使用单独的自定义 ScreenController 类来管理 Transitionsanimations在堆栈中的 Pane 之间。


框架

JFXFlow 这样的框架和 WebFX还可以为您的应用提供浏览器风格的界面,允许用户使用后退和前进按钮以及历史列表在屏幕之间来回切换。

2017 年更新

我认为上面提到的两个框架的开发现在都已经失效了。其他正在开发的框架有:

还有许多其他的(我不会在这里提供完整的列表)。


相关

关于java - 在 JavaFX 中的 Pane 之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16176701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com