当你打电话给getChildren时会发生什么?

时间:2018-02-15 07:06:42

标签: java user-interface javafx

我对Java比较新,尤其是Javafx和GUI。我一直在研究这段代码,但是我在理解“最后一行”的作用时遇到了一些麻烦。我理解最后一行是将所有组件添加到容器中,但是当你在没有容器之前调用getChildren()时会发生什么。无论如何,任何帮助表示赞赏。

import javafx.scene.control.Button;
import javafx.scene.layout.Pane;

public class DVDButtonPane extends Pane {

    public DVDButtonPane(){
        Pane p = new Pane();

        Button add = new Button("Add");
        add.setPrefSize(95, 30);
        add.relocate(0, 0);
        add.setStyle("-fx-font: 12 arial; -fx-base: rgb(0,100,0); -fx-text-fill: rgb(255,255,255);");

        Button delete = new Button("Delete");
        delete.setPrefSize(90, 30);
        delete.relocate(100, 0);
        delete.setStyle("-fx-font: 12 arial; -fx-base: rgb(100,0,0); -fx-text-fill: rgb(255,255,255);");

        Button stats = new Button("Stats");
        stats.setPrefSize(90, 30);
        stats.relocate(210, 0);

        p.getChildren().addAll(add, delete, stats);
        getChildren().add(p);
    }
}

2 个答案:

答案 0 :(得分:2)

getChildren与调用this.getChildren相同。该行将p添加到DVDButtonPane的子集合中。

答案 1 :(得分:1)

将“p”添加到DVDButtonPane。但是如果DVDButtonPane本身是从Pane扩展的话。您可以直接将按钮添加到DVDButtonPane