我想使對象可以添加到我的窗格中。 該對象將包含一個Shape和一些文本。JavaFX:使用形狀和文字製作對象
通過調用:
pane#getChildren()#add(new TextEllipse(...))
,將與在中心所引用的窗格文本添加一個橢圓。
我這樣一個對象類如下表示:
public class TextEllipse extends ShapeEllipse {
public TextEllipse(final String text, final double x, final double y) {
super(text, x, y);
}
@Override
protected Shape createShape() {
final double PADDING = 10;
final Ellipse ellipse = new Ellipse();
ellipse.setRadiusX(getText().getLayoutBounds().getWidth()/2 + PADDING);
ellipse.setRadiusY(10);
ellipse.setStroke(Color.BLACK);
ellipse.setFill(Color.WHITE);
return ellipse;
}
}
public abstract class TextShape extends Pane {
private final Text text;
private final Shape shape;
public TextShape(final String text, final double x, final double y) {
this.text = new Text(x, y, text);
shape = createShape();
}
protected abstract Shape createShape();
public Text getText() {
return text;
}
public Shape getBackgroundShape() {
return shape;
}
}
我已經按照D.J.棕色的方法 - 但是,當我調用
pane#getChildren()#add(new TextEllipse(...))
什麼都不顯示在畫布上。
然而,當我這樣做:
pane#getChildren()#add(new TextEllipse(...)#getBackgroundShape())
橢圓不會顯示出來。
如果我只是添加TextEllipse對象,爲什麼不顯示橢圓和文本?
擴展'Pane'或它的子類中的一個。您需要將文本和橢圓添加到節點。 –
當我用Pane或StackPane擴展它並將其添加爲窗格的一個子項時,它拒絕顯示? ( –
)因爲你仍然**沒有添加形狀和文本到窗格爲什麼你省略了'getChildren()。addAll(...)'?行 –