自定义按钮定位
问题描述:
我决定创建具有动画形状的自定义按钮。所以我跟着一个教程,并设置了一切,它工作正常,直到我添加了一些其他项目的场景。我看到我在这些私有类中使用的定位方法显示正确,但在幕后,Button有另一个实例,它具有我在按钮类中设置的绝对值。自定义按钮定位
为了弄清情况,这是它的外观:
的ToggleSwitch我打造的是一个矩形了一圈,其中移动和更改其背景色,一旦它被点击
,这是它如何反应:
含义,它是阻断上的按钮
我用它下面的代码片段:
private static class ToggleSwitch extends Parent {
...
public BooleanProperty switchedOnProperty() {
return switchedOn;
}
public ToggleSwitch() {
Rectangle background = new Rectangle(102, 52);
background.setArcWidth(50);
background.setArcHeight(50);
background.setFill(Color.WHITE);
background.setStroke(Color.LIGHTGRAY);
Circle trigger = new Circle(25);
trigger.setFill(Color.WHITE);
trigger.setStroke(Color.LIGHTGRAY);
// These two lines are my problem!!
trigger.setCenterX(26);
trigger.setCenterY(26);
...
}
}
,所以我不知道如何设置圆的位置为它是在矩形和没有“另一实例“阻止我的应用程序。
这是一个问题,因为在将它从场景中移除之后,一切正常。
答
问题不在于按钮的创建,而在于我将它们添加到窗格的方式。 因为我只使用普通的Pane对象作为根窗格在内容之间切换,所以它全部卡在Position(0,0)中。
解决方案:使用BorderPane作为根窗格。