JavaFX节点 – 如何让最终用户调整大小?

我正在开发一个 JavaFX应用程序,其中我开发的类(从javafx.scene.Parent扩展)是基于用户在ListView控件中单击的条目即时创建的.

为了清楚这个节点,它不是使用像SceneBuilder这样的布局工具创建的,它是在运行时根据用户的动作创建的.

我的自定义节点类的构造函数创建一个VBox一个Label,并使用构造函数方法中的传递坐标(X,Y)来设置自己的布局坐标.然后,我使用自定义实用程序类使节点可拖动.然后将此新节点添加到主应用程序窗格中.

但是,我没有找到如何使用户可以调整这些节点的大小.也就是说,允许用户将鼠标悬停在节点的角落上,按住并拖动以调整大小.无论操作系统是什么,所有用户都习惯的操作.

有没有人在JavaFX中做过这样的事情? (我对该主题搜索似乎只是在父节点对其子节点进行的自动调整大小时提取主题.)

非常感谢,

伊恩.

解决方法

正如您在 documentation of VBox上看到的那样,您只能定义最小范围,首选范围和最大范围,但实际上并没有办法使其可手动调整大小.

解决问题的唯一合适的解决方案是开发自己的类来完成它,因为你想要的东西看起来非常具体,你的问题描述,我不认为使用一些布局或面板会做你想要的.

我发现了一些你可以使用的东西:Dragging to resize a JavaFX Region

这允许你调整一个区域,所有你需要做的就是将VBox在这个区域,但在本文中注意:

Only height resizing is currently implemented.

This code won’t work in JavaFX8,you’ll have to check the comment to see how it worls in JavaFX8

希望这可以帮助.

相关文章

应用场景 C端用户提交工单、工单创建完成之后、会发布一条工...
线程类,设置有一个公共资源 package cn.org.chris.concurre...
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量