persistent-poltergeist persistent-poltergeist - 2 months ago 37
Java Question

How to remove close button from tabs in javafx

I have created some tabs in a tab pane. Each time i make a tab it has got a close(x) button on its right side. I don't want the tabs to be removed from the tab pane so i have used

TabPane tabPane=new TabPane();
Tab tab=new Tab("new tab");
tab.setContents(new Label("Please help"););
tabpane.getTabs().add(tab);
tab.setOnCloseRequest(e -> e.consume());


so that it won't be removed. Is there some way not to display this close button on tab.
any help is appreciated

NDY NDY
Answer

You can set the TabClosingPolicy on a TabPane

myTabPane.setTabClosingPolicy(TabClosingPolicy.UNAVAILABLE);

There are the following possibilities:

  • TabClosingPolicy.ALL_TABS // all tabs can be closed
  • TabClosingPolicy.SELECTED_TAB // only the selected tab can be closed
  • TabClosingPolicy.UNAVAILABLE // you cant close

If you are adding classes to myTabPane.getTabs() there is also the possibility to set the class to not be closeable (because it needs to extend from Tab):

setClosable(false);

If you define it in the class which extends from Tab I guess the policy you set will be useless and is overridden.

Link to the oracle doc: JavaFX 8 TabPane.TabClosingPolicy

Comments