JavaFX:如何在网格窗格中移动元素?

JavaFX:如何在网格窗格中移动元素?,javafx,gridpane,Javafx,Gridpane,让我解释一下:假设我有一个GridPane10x10,在row=2和col=3的位置上有一个圆。我有一个按钮,我希望当按下按钮时,圆圈向右移动1步(1列),这样它的新位置将是行=2,列=4。问题是:创建一个新类,扩展圆并向其添加intactualrow,这是一个好主意吗;实际值?因此,当我按下按钮时,我将从(actualCol,actualRow)中删除元素,并将其放置在(actualCol+1,actualRow)?IMHO中,将GridPane行和列存储在类中可能不是一个好主意,因为它会使类

让我解释一下:假设我有一个
GridPane
10x10,在
row=2和col=3的位置上有一个圆。我有一个按钮,我希望当按下按钮时,圆圈向右移动1步(1列),这样它的新位置将是
行=2,列=4
。问题是:创建一个新类,扩展圆并向其添加
intactualrow,这是一个好主意吗;实际值?因此,当我按下按钮时,我将从
(actualCol,actualRow)
中删除元素,并将其放置在
(actualCol+1,actualRow)

IMHO中,将
GridPane
行和列存储在类中可能不是一个好主意,因为它会使类与
GridPane
紧密绑定,从而导致糟糕的设计


此外,当gridpane中的圆圈数量增加时,该方法变得更加复杂,在这种情况下,您必须保留一个单独的列表,列出所有
MyCircle
对象,这也是一个开销

为什么要创建一个新类?有什么特别的原因吗?因为我想跟踪网格中圆的位置。这就是为什么我想我应该保存它的坐标。就像在矩阵中一样。我还认为(作为第二种解决方案),我可以创建一个方法,访问所有网格单元,当遇到圆时,它会将其向右移动,但我不知道如何操作。您想浏览网格窗格的所有子级,找到圆,如果找到,则将其移动到下一列?或多或少。。但我觉得这很愚蠢。我认为在
MyCircle
类中已经有圆的坐标更好。我不必浏览网格窗格。你是否建议我创建一个浏览方法,搜索圆圈,在网格窗格中获取它们的坐标,然后删除它,在右移单元格中创建一个新的?是的,这正是我所说的。您始终可以编写一个算法,从子对象及其相应的行和列索引中查找圆。只需使用相同的方法将其删除,然后将其添加到col+1和row+1位置。。