2 votes

JTabbedPane indentation

Lorsque vous utilisez un JTabbedPane, comment mettre en retrait les onglets ?

Sortie par défaut de Swing :

-------  ---------  ------
|  A  |  |   B   |  |  C |
------------------------------
|                            |
|                            | 
|                            |
|                            |
|                            |

Sortie en retrait souhaitée :

   -------  ---------  ------
   |  A  |  |   B   |  |  C |
------------------------------
|                            |
|                            | 
|                            |
|                            |
|                            |

Cela semble assez simple, mais je n'ai pas réussi à trouver la solution. Merci.

1voto

camickr Points 137095

Pour tous les volets à onglets, vous pouvez utiliser les éléments suivants avec le LAF par défaut :

UIManager.put("TabbedPane.tabAreaInsets", new Insets(2, 20, 0, 6) );

Voir aussi : Valeurs par défaut de l'UIManager

Pour les volets à onglets individuels, vous devrez probablement remplacer la méthode "getTabAreaInsets()" de la classe BasicTabbedPaneUI pour obtenir l'encart ci-dessus.

0voto

Etaoin Points 4083

S'il n'y a aucun moyen de le faire avec un simple JTabbedPane, vous pouvez utiliser la solution suivante (légèrement inélégante) :

Créez votre propre composant, composé d'un JTabbedPane et d'un JPanel. Le JTabbedPane affiche uniquement les onglets ; en ce qui le concerne, chaque onglet est vide. Le JPanel (qui utilise un CardLayout) est chargé d'afficher réellement chaque onglet. Ajoutez un ChangeListener au JTabbedPane, et utilisez-le pour passer d'une carte à l'autre du CardLayout.

Il vous suffit ensuite de disposer le JTabbedPane et le JPanel dans votre propre composant, ce que vous pouvez faire comme bon vous semble. Cela vous permet de pousser les onglets vers la droite.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X