2

是否有可能有一个HBox带有关闭按钮的按钮(即一个用于删除的子按钮HBox)?我打算将它实现为这样的:

在此处查看图片。

我想创建一个我自己的类,它继承自HBox该类,并且在实例化后已经有一个关闭按钮。关闭按钮需要HBox从父级HBox(在本例中VBox为父级)中移除,而不是隐藏它。但我不确定这是否可能。

如果可能,应该如何setOnAction实现关闭按钮?

4

1 回答 1

1

当然这是可能的:

EventHandler<ActionEvent> handler = event -> {
    // get button that triggered the action
    Node n = (Node) event.getSource();

    // get node to remove
    Node p = n.getParent();

    // remove p from parent's child list
    ((Pane) p.getParent()).getChildren().remove(p);
};
Button button = new Button("x");
button.setOnAction(handler);

请注意,事件处理程序的同一个实例可以重复用于多个关闭按钮,因为您获得了从事件对象中单击的按钮。

于 2017-11-04T09:50:16.490 回答