Il primo parametro di addTab() è un String e su questo non ci piove. Non è qui che potresti agire.Originariamente inviato da jin85
il problema è questo...io carico quei nomi nelle tab tramite un ciclo, poichè li prendo da un file xml...al momento del caricamento quei nomi x me non sono delle JLabel, ma String.
come vedi quando faccio addTab, inserisco "nomcognom" che è di tipo String
quindi ammesso che funzionasse quell'esperimento con JLabel, nn mi sarebbe utile nel mio caso, poichè ho String..correggimi se sbaglio.
Io stavo parlando di usare setTabComponentAt(). Con questo (da Java 6) puoi impostare un componente da visualizzare sulla "linguetta" del tabbed pane. Il addTab() lo devi fare comunque .... il componente da visualizzare nell'area del tabbed pane lo devi aggiungere, no?
Se usi setTabComponentAt() però il componente che passi va a "sovrascrivere" la stringa che passi ad addTab().
E comunque ho fatto proprio adesso una prova con setTabComponentAt(). Puoi inserire un componente come JLabel ma non puoi allinearlo a sinistra nella linguetta. Il problema non è nella JLabel in sé .... ma nel come il tabbed pane dispone il contenuto delle linguette. Infatti il tabbed pane si basa solo sul "preferred" size del componente.
Una possibilità ci sarebbe: impostare un preferred size abbastanza "largo" per la JLabel impostata con setTabComponentAt().
Ecco un esempio:
codice:import java.awt.*; import javax.swing.*; public class TabbedTabAlignTest { public static void main (String[] args) { SwingUtilities.invokeLater (new Runnable () { public void run () { TabbedTabAlignTestFrame f = new TabbedTabAlignTestFrame (); f.setVisible (true); } }); } } class TabbedTabAlignTestFrame extends JFrame { private JTabbedPane tabbedPane; public TabbedTabAlignTestFrame () { super ("Tabbed Tab Align Test"); setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); setSize (300, 300); tabbedPane = new JTabbedPane (JTabbedPane.LEFT); tabbedPane.addTab ("bla bla bla", new JLabel ("1")); tabbedPane.addTab ("hello", new JLabel ("2")); tabbedPane.addTab ("world", new JLabel ("3")); JLabel label1 = new JLabel ("ABC", SwingConstants.LEFT); label1.setPreferredSize (new Dimension (150, label1.getPreferredSize().height)); tabbedPane.setTabComponentAt (1, label1); getContentPane ().add (tabbedPane); } }

Rispondi quotando