2017-02-03 202 views
0

我决定创建具有动画形状的自定义按钮。所以我跟着一个教程,并设置了一切,它工作正常,直到我添加了一些其他项目的场景。我看到我在这些私有类中使用的定位方法显示正确,但在幕后,Button有另一个实例,它具有我在按钮类中设置的绝对值。自定义按钮定位

为了弄清情况,这是它的外观:

的ToggleSwitch我打造的是一个矩形了一圈,其中移动和更改其背景色,一旦它被点击

,这是它如何反应:

enter image description here

含义,它是阻断上的按钮

我用它下面的代码片段:

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); 
    ... 
} 
} 

,所以我不知道如何设置圆的位置为它是在矩形和没有“另一实例“阻止我的应用程序。

这是一个问题,因为在将它从场景中移除之后,一切正常。

回答

0

问题不在于按钮的创建,而在于我将它们添加到窗格的方式。 因为我只使用普通的Pane对象作为根窗格在内容之间切换,所以它全部卡在Position(0,0)中。

解决方案:使用BorderPane作为根窗格。