Ron*_*nak 7 java tabs javafx event-handling javafx-2
我创建了一个程序,其中TabPane包含多个选项卡.当有人试图关闭任何Tab时,我想执行我自己的代码:当用户点击任何Tab的默认关闭按钮时,它会要求确认.如果用户说"是",则选项卡将关闭,否则将保持打开状态.
我怎样才能做到这一点?
我正在做类似下面的事情.Tab仍然关闭.我该如何使用该标签?
Tab tab = new Tab();
TabPane tabPane=new TabPane();
tabPane.getTabs().add(tab);
tab.setOnClosed(new EventHandler<Event>() {
@Override
public void handle(Event t) {
t.consume();
}
});
Run Code Online (Sandbox Code Playgroud)
TabJava 8 的实现具有一个onCloseRequest属性,允许您阻止选项卡关闭:
/* The installed event handler can prevent tab closing
by consuming the received event. */
public void setOnCloseRequest(EventHandler<Event> value)
Run Code Online (Sandbox Code Playgroud)
我正在按照自己的方式进行操作,如下所示。
我创建了一个超链接并将其设置为该选项卡的图形,它对我来说工作得很好。
Hyperlink hlink = new Hyperlink();
Image image = new Image(MyClass.class.getResourceAsStream("/images/close.png"));
hlink.setGraphic(new ImageView(image));
hlink.setFocusTraversable(false);
Tab tab = new Tab();
tab.setGraphic(hlink);
hlink.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
//Do somthing
}
});
Run Code Online (Sandbox Code Playgroud)