2010-07-18 8 views
1

Comment procéder pour redimensionner automatiquement la longueur des onglets en fonction de l'espace restant dans cette rangée d'onglets.Centrage du panneau JTabbedPane mais pas des onglets réels

Image:

alt text

Comme vous pouvez le voir la largeur de l'onglet est basé sur le texte dans l'onglet.

Si vous avez besoin de moi pour expliquer ce que je veux mieux alors demandez-moi simplement parce que je ne sais pas si je l'ai fait assez clair.

Répondre

1

Vous pouvez utiliser un composant personnalisé et définir sa taille préférée. Par exemple, dans ButtonTabComponent de TabComponentsDemo:

label.setPreferredSize(new Dimension(...)); 

Vous devez choisir une dimension appropriée en fonction d'autres aspects de votre mise en page, donc il ne sera pas automatique.

Je souhaite définir une taille pour le panoramique à onglets réel.

La taille de l'JTabbedPane est une fonction des dimensions et de la LayoutManagerContainer auquel il a été ajouté. Dans le example cited, la disposition par défaut du volet de contenu du cadre est BorderLayout et add(pane) l'ajoute au centre par défaut.

Pour atteindre votre objectif, je vois deux approches:

  1. Diviser la largeur actuelle de la enfermant Container parmi les onglets existants et repeindre le volet par onglets, comme le montre cette example. Développez votre propre implémentation de TabbedPaneUI et interprétez SCROLL_TAB_LAYOUT en conséquence.

+0

Je ne souhaite pas définir de taille pour les onglets dans le volet à onglets. Je veux définir une taille pour le panoramique à onglets réel. –

+0

@Gnarly: J'ai élaboré ci-dessus. – trashgod

+0

Merci, mais les choses que vous avez énumérées sont un peu trop pour quelque chose d'aussi simple. Je suppose que cela n'a pas vraiment d'importance si je fais de mon pan d'onglets comme ça de toute façon. –