动画分割面板分隔线

2023-12-13

我有一个水平分割窗格,我想在单击按钮时更改分隔线位置,以便创建某种“幻灯片”动画。

分隔线将从 0(完全向左)开始,单击时它会打开到 0.2,当我再次单击时,它会返回到 0;

现在我实现了这一点,我只是使用

spane.setdividerPositions(0.2); 

和分隔线位置变化,但我无法慢慢地做到这一点,我真的很喜欢改变分隔线位置时的滑动感觉。

有人可以帮助我吗?我在谷歌上找到的所有示例都显示了一些 DoubleTransition,但在 java 8 中不再存在,至少我没有导入它。


您可以致电getDividers().get(0)获得第一个分隔符。它有一个positionProperty()您可以使用时间线制作动画:

import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.beans.binding.Bindings;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.SplitPane;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import javafx.util.Duration;

public class AnimatedSplitPane extends Application {

    @Override
    public void start(Stage primaryStage) {
        SplitPane splitPane = new SplitPane(new Pane(), new Pane());
        splitPane.setDividerPositions(0);

        BooleanProperty collapsed = new SimpleBooleanProperty();
        collapsed.bind(splitPane.getDividers().get(0).positionProperty().isEqualTo(0, 0.01));

        Button button = new Button();
        button.textProperty().bind(Bindings.when(collapsed).then("Expand").otherwise("Collapse"));

        button.setOnAction(e -> {
            double target = collapsed.get() ? 0.2 : 0.0 ;
            KeyValue keyValue = new KeyValue(splitPane.getDividers().get(0).positionProperty(), target);
            Timeline timeline = new Timeline(new KeyFrame(Duration.millis(500), keyValue));
            timeline.play();
        });

        HBox controls = new HBox(button);
        controls.setAlignment(Pos.CENTER);
        controls.setPadding(new Insets(5));
        BorderPane root = new BorderPane(splitPane);
        root.setBottom(controls);
        Scene scene = new Scene(root, 600, 600);
        primaryStage.setScene(scene);
        primaryStage.show();

    }

    public static void main(String[] args) {
        launch(args);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动画分割面板分隔线 的相关文章

  • TextField 和属性之间的 JavaFX 绑定

    如果您在 JavaFX TextField 和属性之间创建绑定 则每次击键时该绑定都会失效 从而导致文本发生更改 如果您有一系列绑定 则默认行为可能会导致问题 因为中间的编辑值可能无效 好的 我知道我可以创建从属性到文本字段的单向绑定 并注
  • JavaFX检测同时按下的多个键盘按键

    正如标题所说 我想检测同时按下的多个键盘按键 同时地 并被按下 同时地 一段时间 我正在尝试添加多个事件处理程序Scene但它不起作用 EventHandler
  • 如何告诉 JavaFX WebView 忽略“use strict”指令?

    我正在尝试使用以下代码将 mozilla 查看器集成到 JavaFx WebView 中 import javafx application Application import javafx scene Scene import java
  • 如何在 Javafx 中将文本插入到形状中?

    我使用 JavaFX 创建了一个简单的矩形对象 我希望能够将文本对象放入该矩形内 并使其自动在矩形内保持对齐 我必须绘制矩形的代码是 public static Scene createScene Group root new Group
  • Angular js - 幻灯片视图但不是主页 - ng-animate

    我在用着ng动画滑动应用程序视图 因此每个路线都会滑动自己的视图 这是我的简单代码 html div class slide div css Animations slide left 0 slide ng enter transition
  • 如何在关闭阶段后清除 Javafx Webview 内存使用情况

    我尝试在JavaFX中使用webview制作UI 但是有一个问题 当使用popup打开大图像时 内存使用量非常大 并且当popup关闭时 内存使用量不会下降 我明白了通过 Windows 中的任务管理器查看内存使用情况 当使用webview
  • 在胶子mapLayer中创建折线

    Google 地图 API 可以在地图上创建包含连接点的折线的图层 我搜索了在哪里可以找到 gluon 的 mapLayer 的示例或实现 请指教 虽然没有明确的 API 用于在对象之上绘制直线 折线或多边形MapView the MapL
  • 如何使用 javafx 隐藏或停用 TextField 和 Label

    我想隐藏或停用TextField和它的Label在我的 JavaFX 应用程序中 这就是我尝试过的 myTextField setVisible false 但它不起作用 我在 Windows 7 上使用 Eclipse V4 5 0 和
  • PreLoader 的多线程 - JavaFX

    我正在开发一个 JavaFX 应用程序 需要在启动主应用程序阶段之前从文件中加载资源 我完成此任务的解决方案是使用 PreLoader 以便用户在加载资源之前无法与应用程序交互 非常标准的东西 我有一个扩展 PreLoader 类的类 该类
  • JavaFX 8:拦截应用程序“退出”

    为了验证用户所做的所有更改是否已保存 我想拦截 JavaFX 应用程序的退出 退出 是否有一种通用的方法来实现这一目标 例如覆盖事件 或者还有更多方法吗 正如他们已经说过的 这是通过拦截来完成的WindowEvent WINDOW CLOS
  • 如何在 Javafx 中对齐对话框窗格的“确定”按钮?

    我想对齐 即位置中心 对话框窗格的 确定 按钮 我已经尝试过下面的代码 但它不起作用 Dialog dialog new Dialog DialogPane dialogPane dialog getDialogPane dialogPan
  • 如何根据鼠标位置显示工具提示? - JavaFX

    我有一个stackPane 充满一个圆圈和几条线 我想在将鼠标悬停在 StackPane 上时显示工具提示 并且工具提示应包含X Y coords鼠标的 我知道如何获取鼠标的坐标 但我无法找到显示工具提示的方法 你们中有人能帮我吗 安舒尔
  • 像耐心/克朗代克纸牌游戏一样拖动节点

    我正在做克朗代克游戏 逻辑一切正常 我只是在使用 javafx 中的 UI 时遇到问题 我一直在尝试从 桌面堆 周围移动 拖动卡片 但没有达到预期的结果 我的卡片是一个 ImageView 里面有一个图像 这些卡片位于窗格内 Pane ta
  • 尝试使 Tableview 可点击时发生 JavaFX 错误

    我正在尝试使表格视图可单击 它将返回单击的单元格中的文本 尝试在 Netbeans 中编译时收到两个错误 所有代码均取自 示例12 11 单元格编辑的替代解决方案 官方表格视图教程 http docs oracle com javafx 2
  • FXML load() 期间出现 JavaFX IllegalAccessException

    我有一个由以下代码调用的对话框窗口 DialogController是使用模式对话框窗口的辅助类 它主要将控制器引用与其窗口捆绑在一起 void handleServicesEdit ActionEvent event throws IOE
  • 学习 Java Native Access 时出现 com.sun.glass.ui 包错误

    我正在尝试在 JavaFX 项目中使用 Undecorated 阶段 stage initStyle StageStyle UNDECORATED 它是一个模块化的 Gradle 项目 它也是一个多项目构建 https guides gra
  • 将两个表视图绑定在一起,以便它们同步滚动

    我想将两个表视图绑定在一起 以便它们同步滚动 我怎么做 我无法找到如何访问表格视图的滚动条 我做了一个CSS hack来将Tableview与外部滚动条绑定 一个滚动条控制两个表格视图 我的想法的概述 创建两个表视图 制作一个垂直滚动条 在
  • JavaFX 3D 面孔着色...再次

    我研究了这个question https stackoverflow com questions 26831871 coloring individual triangles in a triangle mesh on javafx 但我还
  • JavaFx ComboBox 绑定混乱

    我有一个 I18N 实现 它通过属性绑定 JavaFX UI 元素 例如 def translateLabel l Label key String args Any Unit l textProperty bind createStrin
  • javafx中的stackpane和root有什么区别?

    我正在练习javafx做饼图 以下是开发饼图的代码 如果我这样做Group并与StackPane 我发现输出没有区别 我已经评论了组部分 只是徘徊两者之间的区别 import javafx application Application i

随机推荐

  • 在 iPhone 中创建二维码

    我看过一些示例代码 这些代码正在从文本创建二维码 下面是代码 我们也可以从其他数据 如图像 生成二维码吗 NSString code 1001012023034 Barcode barcode Barcode alloc init self
  • 在Java中为数字添加前导零? [复制]

    这个问题在这里已经有答案了 有没有更好的方法来获得这个结果 如果 num 的位数多于位数 则此函数会失败 并且我觉得它应该在库中的某个地方 例如 Integer toString x 3d 或其他东西 static String intTo
  • 获取与 Windows 中的任务管理器相同的进程详细信息

    我编写了一个程序来获取当前正在运行的进程的内存详细信息psutil在Python 3中 问题是我得到的值与Windows任务管理器中的值不同 具体来说 如何在Python中获取进程的私有工作集大小 psutil 调用GetProcessMe
  • 如何制作或使用 WP7 的标准图像查看器

    我想做一个显示图片的应用程序 但我希望能够通过手势来放大和缩小 我通过在我的项目中包含一个工具包来解决这个问题 但我真正的问题是 我可以使用或者是否有一个已经为我创建的控件来显示图片 例如 WP7 手机本身的图片库 我以为没有 但 Face
  • Ansible 抛出“无法更新 apt 缓存:W:无法安全地从此类存储库更新”错误

    我对 Ansible 非常陌生 我正在尝试在 EC2 实例 Ubuntu 18 04 上安装 kubectl 来上课 我已经运行了剧本 一切进展顺利 直到遇到任务 4 然后抛出以下错误 致命 localhost 失败 gt changed
  • 在 URL 和 .htaccess 中使用空格

    我为我的城市编写了一个本地名称 电话 地址搜索引擎 用户必须能够通过访问以下任一 URL 来快速访问结果 search by number http domain com 5554651 search by lastname http do
  • 如何在 Windows Phone 8.1 中缓存页面

    以前在Windows Phone 8 0应用程序中 我们可以通过这种方式更深入地导航到同一页面 NavigationService Navigate new Uri SamePage xaml UriKind Relative 页面会自动缓
  • QuickGraph - 是否有算法可以找到一组顶点的所有父级(直到根顶点)

    在 QuickGraph 中 是否有算法可以查找一组顶点的所有父级 直到根顶点 换句话说 所有顶点的下方某处 在通往叶节点的路上 都有一个或多个顶点输入 因此 如果顶点是节点 并且边是依赖关系 则找到将受到给定节点集影响的所有节点 如果不是
  • 如何使用 Visual Studio 2019 面向 Windows 7?

    我想使用 Visual Studio 2019 来享受最新的 C 新增功能 但针对的是 Windows 7 我使用 VS 2019 向导创建了一个 Windows C 应用程序 在 Windows 10 上运行 A targetver h文
  • URLEncoder.encode() 和空格?

    我的服务器上有一个名为 some image png 名字里有一个空格 当我在浏览器 chrome 中输入 url 时 它会将空格转换为 20 some 20 png 当我从应用程序中使用 URLEncoder encode some im
  • GStreamer 同时录制和查看流

    我手头有一项奇怪的任务 我已经尝试了一切 我想知道你是否能帮忙 我的任务是抓取 RaspPi 发出的流并将其保存到我的电脑上 但是 我需要同时查看和保存它 这可以查看它 gst launch 1 0 udpsrc 端口 5000 应用程序
  • 相关子查询中的 MySQL LIMIT

    我有一个相关子查询 它将返回数量列表 但我需要最高数量 而且只需要最高数量 因此 我尝试引入 order by 和 LIMIT 1 来实现此目的 但 MySQL 抛出一个错误 指出它还不支持子查询中的限制 关于如何解决这个问题有什么想法吗
  • Qt5 | Cmake |对`QPrinter::QPrinter(QPrinter::PrinterMode)的未定义引用

    我正在为 qt 应用程序准备 cmake 构建 我在哪里使用以下结构 libMyApp 它使用 SET QT5 MODULES Widgets PrintSupport Network XmlPatterns FIND PACKAGE Qt
  • 基于索引模式到间接寻址模式的转换(x86 汇编)

    我目前正在努力将示例从复杂的间接寻址模式更改为简单的间接寻址模式片段 但是 我遇到了基于模式的示例 我无法 转换 Code move eax 28 esp 我试过了 addl 28 esp movl eax esp 这会产生分段错误 我不知
  • 如何在Linux服务器上的80端口启动node.js?

    当我尝试在端口 80 上启动节点时 错误告诉我该端口正在使用中 我想那是阿帕奇 接管 端口 80 并在服务器重新启动后保持这种状态的正确方法是什么 Linux xxxx com 2 6 32 5 amd64 1 SMP 6 月 14 日星期
  • R textConnection:“参数‘对象’必须解析为单个字符串”

    我想将字符串列表转换为数据框 但是 我收到此错误 gt read csv textConnection c id name count 6289 aa 16 6269 bb 8 6269 cc 8 6269 dd 8 6610 ee 4 E
  • 防止 jQuery 多重引用

    我正在开发 DNN 模块 并且在某些模块中使用 jQuery 我将 jQuery 引用添加到每个 ascx 文件的顶部 顺便说一句 当用户将多个模块添加到每次添加模块时引用的页面时 这种情况给出一些错误 当我从另一个模块底部的模块中删除引用
  • Outlook 将电子邮件标记为垃圾邮件

    我知道 我听起来像垃圾邮件发送者 但这些电子邮件对于在我们开发的这个网站上注册帐户的人来说是完全合法的电子邮件确认 这些电子邮件都会发送到各个邮件提供商 gmail yahoo aol hotmail live 但它们总是被定向到 Outl
  • 如何使用winsound同时播放多个声音?

    我正在尝试使用内置的winsound 库将多个声音叠加在一起 我开始我的第一个声音 winsound PlaySound test1 wav winsound SND FILENAME winsound SND ASYNC 当我尝试启动其他
  • 动画分割面板分隔线

    我有一个水平分割窗格 我想在单击按钮时更改分隔线位置 以便创建某种 幻灯片 动画 分隔线将从 0 完全向左 开始 单击时它会打开到 0 2 当我再次单击时 它会返回到 0 现在我实现了这一点 我只是使用 spane setdividerPo