JavaFX,在 StackPane 中添加图像
JavaFX, adding images in StackPane
我卡在了这个阶段,如何将那 3 座塔添加到 StackPane 中,以及如何在没有 Scene Builder 的情况下仅使用 JavaFX 代码在该窗格内移动砖块(例如从 1-2-3)?如有任何答案,我将不胜感激!
图片:
我的建议:
您创建了一个 class "Tower",它扩展了 class Pane 并包含一个磁盘列表。 class 有一个方法 "accept" ,它 returns 布尔值取决于你是否可以把磁盘放在那里。
创建 class 塔的 3 个实例。
然后你创建一个 class "Disk" 来扩展 class Rectangle。创建8个不同宽度的实例并将它们添加到第一个塔,即class塔的列表。
每个磁盘都将使用 中描述的鼠标侦听器。该机制与您需要的非常相似。
在鼠标侦听器的 mousepressed 处理程序中,您检查磁盘是否在塔的顶部,因此您是否可以拖动它。
在鼠标侦听器的 mousereleased 处理程序中,您只需检查磁盘是否与给定的塔相交(参见 boundsInParent and intersects)。如果是,并且接受方法 returns 为真,则将其放在那里。如果accept方法returns false,你让它飞回它来的地方。
当塔拥有所有磁盘时,您就完成了。
基本上就是这样。
哦,不要使用 StackPane,而是使用 Pane。而且你不需要图像。您显示的图片只能由矩形创建。
我卡在了这个阶段,如何将那 3 座塔添加到 StackPane 中,以及如何在没有 Scene Builder 的情况下仅使用 JavaFX 代码在该窗格内移动砖块(例如从 1-2-3)?如有任何答案,我将不胜感激!
图片:
我的建议:
您创建了一个 class "Tower",它扩展了 class Pane 并包含一个磁盘列表。 class 有一个方法 "accept" ,它 returns 布尔值取决于你是否可以把磁盘放在那里。
创建 class 塔的 3 个实例。
然后你创建一个 class "Disk" 来扩展 class Rectangle。创建8个不同宽度的实例并将它们添加到第一个塔,即class塔的列表。
每个磁盘都将使用
在鼠标侦听器的 mousepressed 处理程序中,您检查磁盘是否在塔的顶部,因此您是否可以拖动它。
在鼠标侦听器的 mousereleased 处理程序中,您只需检查磁盘是否与给定的塔相交(参见 boundsInParent and intersects)。如果是,并且接受方法 returns 为真,则将其放在那里。如果accept方法returns false,你让它飞回它来的地方。
当塔拥有所有磁盘时,您就完成了。
基本上就是这样。
哦,不要使用 StackPane,而是使用 Pane。而且你不需要图像。您显示的图片只能由矩形创建。