persistent_poltergeist
persistent_poltergeist

Reputation: 564

How to remove close button from tabs in JavaFX

I have created some tabs in a TabPane. 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 TtabPane 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.

Upvotes: 19

Views: 16988

Answers (2)

Pochmurnik
Pochmurnik

Reputation: 828

You can also define this using FXML by this code:

<TabPane tabClosingPolicy="UNAVAILABLE">

Upvotes: 5

NDY
NDY

Reputation: 3557

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

Upvotes: 31

Related Questions