默认关闭时在TabPane中使用的标签

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)

jew*_*sea 8

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)


Ron*_*nak 4

我正在按照自己的方式进行操作,如下所示。
我创建了一个超链接并将其设置为该选项卡的图形,它对我来说工作得很好。

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)