7

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

需要说明的是,这个节点不是使用像 SceneBuilder 这样的布局工具创建的,它是在运行时根据用户的操作创建的。

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

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

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

非常感谢,

伊恩。

4

1 回答 1

1

正如您在VBox 的文档中看到的,您只能定义minimum、prefered 和 maximum range,实际上并没有办法让它手动调整大小

解决您的问题的唯一正确解决方案是开发自己的类来完成它,因为您想要的似乎非常具体,根据您的问题描述,我认为使用某些布局或面板不会满足您的需求。

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

这允许你调整一个区域的大小,你所要做的就是把你的 VBox 放在这个区域中,但是在这篇文章中请注意:

当前仅实现高度调整。

此代码在 JavaFX8 中不起作用,您必须检查注释以了解它在 JavaFX8 中的工作方式

希望这可以帮助。

于 2015-05-22T10:26:46.140 回答