JavaFX:带关闭按钮的 HBox
JavaFX: HBox with a close button
是否可以有一个带有关闭按钮的 HBox
(即一个用于删除 HBox
的子按钮)? 我是计划将其实现成这样:
我想制作一个我自己的 class 继承自 HBox
class 并且在实例化后已经有一个关闭按钮。 关闭按钮需要从 HBox
的父级(在本例中为 VBox
父级)移除 HBox
,不隐藏它。但我不确定是否可行。
如果可以,关闭按钮setOnAction
应该如何实现?
当然可以:
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);
请注意,事件处理程序的同一实例可重复用于多个关闭按钮,因为您从事件对象中获取了被单击的按钮。
是否可以有一个带有关闭按钮的 HBox
(即一个用于删除 HBox
的子按钮)? 我是计划将其实现成这样:
我想制作一个我自己的 class 继承自 HBox
class 并且在实例化后已经有一个关闭按钮。 关闭按钮需要从 HBox
的父级(在本例中为 VBox
父级)移除 HBox
,不隐藏它。但我不确定是否可行。
如果可以,关闭按钮setOnAction
应该如何实现?
当然可以:
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);
请注意,事件处理程序的同一实例可重复用于多个关闭按钮,因为您从事件对象中获取了被单击的按钮。