Swing JTabbedPane: Tab-Elemente anpassen

Määx

Neues Mitglied
Hallo zusammen,

ich habe ein Problem mit dem Design meiner JTabbedPane: ich habe eine Tab-Leiste auf der linken Seite angelegt und in jedem Tab-Element ein Icon und einen Titel. Nun werden diese leider immer zentriert dargestellt. Da ich keine Möglichkeit gefunden hatte die Tabs linksbündig auszurichten, habe ich mir jeweils ein "eigenes" Design mit einem JPanel gebastelt. Leider funktionieren hier die Größen-Angaben nicht bzw. das JPanel wird zentriert im Tab dargestellt...
Hier was ich bisher habe:
Java:
JTabbedPane tabpaneUnits = new JTabbedPane( JTabbedPane.LEFT, TabbedPane.SCROLL_TAB_LAYOUT );

int i = 0;
for( Unit unit : units ){
    tabpaneUnits.addTab( unit.getName(), unit.getIcon(), unit.getMainPanel() );
        	        	
    JPanel tab = new JPanel();
    tab.setLayout( new FlowLayout(FlowLayout.LEFT, 0, 0) );
    tab.setBounds( 0, 0, 50, 200 );
    JLabel lblTitel = new JLabel( unit.getName() );
    tab.add( lblTitel  );
                        
    tabpaneUnits.setTabComponentAt( i, tab );
    i++;
}

Der Tab wird jetzt wie gewünscht durch das JPanel ersetzt, das jetzt ja bei allen Elementen die gleiche Breite haben sollte. Leider wird das JPanel jedoch auf die Titel-Größe angepasst und im Tab zentriert...

Was mache ich hier falsch? Gibt es vll. eine einfachere Möglichkeit dem Tab zu sagen, dass er linksbündig arbeiten soll?
Bin für jeden Tipp dankbar!
Viele Grüße
Määx
 
ah ok, vielen Dank! Leider bekomme ich es trotzdem nicht hin: ich hatte zunächst das null Layout gewählt und entsprechend die Bounds gesetzt. Hier erhalte ich nur Tabs die gerade groß genug sind um mit der Maus drauf zu klicken - lesen kann man aber nichts mehr. Ich habe es nun mit dem GridBagLayout versucht da ich ja nur hier noch die Breite bestimmen kann - leider kein Erfolg:
Java:
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();

JPanel tab = new JPanel();
tab.setLayout( gbl );
JLabel lblTitel = new JLabel( unit.getName() );
    		
gbc.fill = GridBagConstraints.BOTH;
gbc.gridx = 0;
gbc.gridy = 0;
gbc.gridwidth = 200;
gbc.gridheight = 50;
gbl.setConstraints( lblTitel , gbc );

tab.add( lblTitel  );
Mir wird das Panel immer nur auf die benötigte Größe gesetzt und dann zentriert. Was mache ich falsch?
Vielen Dank für deine Hilfe
Määx
 

Neue Themen


Zurück
Oben