2009-11-23 15 views
8

ciao sto usando il look-and-feel nimbus e ho un tabbed con un'icona e un testo. ora l'icona appare sul lato destro del testo, mentre mi piacerebbe averlo sul lato sinistro.JTabbedPane: icona sul lato sinistro delle schede

anche io vorrei aggiungere una spaziatura tra l'icona e il testo.

grazie!

risposta

15

È necessario impostare personalmente il componente di tabulazione; che governa il rendering del titolo della scheda.

// Create tabbed pane and add tabs. 
JTabbedPane tabbedPane = ... 

// Create bespoke component for rendering the tab. 
JLabel lbl = new JLabel("Hello, World"); 
Icon icon = new ImageIcon(getClass().getResource("/foo/bar/hello.jpg")); 
lbl.setIcon(icon); 

// Add some spacing between text and icon, and position text to the RHS. 
lbl.setIconTextGap(5); 
lbl.setHorizontalTextPosition(SwingConstants.RIGHT); 

// Assign bespoke tab component for first tab. 
tabbedPane.setTabComponentAt(0, lbl); 

Ovviamente si potrebbe incapsulare questo in un metodo di utilità:

private void addTab(JTabbedPane tabbedPane, Component tab, String title, Icon icon) { 
    tabbedPane.add(tab); 

    JLabel lbl = ... // Create bespoke label for rendering tab title. 

    tabbedPane.setTabComponentAt(tabbedPane.getTabCount() - 1, lbl); 
} 
+0

stavo usando questo codice per aggiungere (componente, string, icona e tooltip) alla scheda pane.addTab ("Nome di Tab ", nuovo ImageIcon (" resources \\ 1.png "), mainPanel," tooltip text "); ora voglio lo stesso (il testo deve apparire a destra e l'icona a sinistra) ho provato lo stesso u specificato nel tuo commento sopra ... e ho ottenuto un'eccezione nel mio codice ... per favore aiuto – Gagan93

+0

@ Gagan93: Per favore puoi postare questo come una domanda separata; senza vedere l'eccezione, non sono sicuro di poterti aiutare. – Adamski

+0

ok, non stavo postando per paura di avere downvoted, sto postando una domanda diversa entro 2 minuti con il mio problema ... si prega di fornire una soluzione – Gagan93

Problemi correlati