自分のペインに追加できるオブジェクトを作成しようとしています。 このオブジェクトには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またはStackPaneで拡張し、それをペインの子の1つとして追加すると、表示を拒否しますか? :( –
)あなたはまだ形状とテキストをペインに追加していないので、なぜ 'getChildren()。addAll(...) 'という行を省略しましたか? –