Edit: Dieser Beitrag wurde als neues Thema in TabPane Ausrichtung kopiert
Manchmal habe ich die Befürchtung, dass die Oracle-Jungs (und Mädels) bei JavaFX nicht bis zu Ende gedacht haben.
Beispiel?
Es ist super einfach, die Tabs einer TabPane an die Seite zu legen:```public class JavaFxTabs extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
TabPane tabPane = new TabPane();
tabPane.setSide(Side.LEFT);
String tabName = "";
for (int i = 1; i < 6; i++){
tabName+="Tab";
tabPane.getTabs().add(new Tab(tabName + i, new Text(
tabName+" " + i + " content")));
}
primaryStage.setScene(new Scene(tabPane));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}```Ich finde es echt toll, dass das so einfach geht.
Leider ist es dagegen “nicht ganz so einfach” die kompletten Tabs nun wieder “zurückzudrehen”, so das sie Schrift wieder waagerecht ist. Für die Beschriftung selbst ist das schon möglich, aber was nützt das, wenn man sie dann gar nicht mehr lesen kann?```public class JavaFxTabs extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
TabPane tabPane = new TabPane();
tabPane.setTabClosingPolicy(TabClosingPolicy.UNAVAILABLE);
tabPane.setSide(Side.LEFT);
String tabName = “”;
for (int i = 1; i < 6; i++) {
tabName+=“Tab”;
Tab tab = new Tab("", new Text(
“tab " + i + " content”));
Label label = new Label(tabName+i);
label.setRotate(90);
tab.setGraphic(label);
tabPane.getTabs().add(tab);
}
primaryStage.setScene(new Scene(tabPane));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}```Wenn man jetzt etwas mit label.setMin/MaxWidth/Height()
undtabPane.setTabMin/MaxWidth/Heigth()
rumspielt bringt das leider keine einschneidende Verbesserung.
Aber am Ende will
man
[spoiler]ich schließe hier mal unzulässiger Weise von mir auf andere…[/spoiler]
das ja in erster Linie deshalb machen weil man mehr Tabs (auf Kosten des Inhalts) darstellen will.
Warum habe die denn die Methode tabPane.setTabRotation()
nicht dabei?:sick:
**[edit]**In Swing war das noch implizites Verhalten:```public class TabLocation {
public static void main(String args[]) {
JFrame frame = new JFrame(“Tabbed Pane Sample”);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.setTabPlacement(JTabbedPane.LEFT);
String tabName = "";
for (int i = 0 ; i < 6; i++) {
tabName+="Tab";
tabbedPane.addTab(tabName+i,new JLabel( "Content of Tab "+i));
}
frame.add(tabbedPane, BorderLayout.CENTER);
frame.setSize(400, 150);
frame.setVisible(true);
}
}```
bye
TT