他のコントロールが追加されたペインを含む、JavaFX 8で基本的で拡張可能なカスタムコントロールを実装しようとしています。ペインに基づいてカスタムJavaFXコントロールを実装する方法
したがって、例えば、それはTextField
、Button
とCheckBox
保持GridPane
を含んでもよいです。
Pane
またはGridPane
をサブクラス化したくないのは、これらのAPIをユーザーに公開したくないからです。したがって、「グリッド・ペインを拡張するノード」ではなく、「グリッド・ペインで構成されるノード」。
Region
またはControl
の拡張が可能ですが、これはお勧めですか?ペインにサイジングとレイアウトを委任するためには何が必要ですか?
public class BasePaneControl extends Control {
private final Pane pane;
public BasePaneControl(Pane pane) {
this.pane = pane;
getChildren().add(pane);
}
// What do I need to delegate here to the pane to get sizing
// to affect and be calculated by the pane?
}
public class MyControl extends BasePaneControl {
private final GridPane gp = new GridPane();
public MyControl() {
super(gp);
gp.add(new TextField(), 0, 0);
gp.add(new CheckBox(), 0, 1);
gp.add(new Button("Whatever"), 0, 2);
}
// some methods to manage how the control works.
}
私は上記のBasePaneControl
を実装する際に助けが必要です。