JTabbedPane (Orientierung links) mit Icon und Text übereinander

mas666

Mitglied
Hallo,

Nach vergeblicher Suche im Internet hoffe ich auf euch:

Ich habe einen JTabbedPane mit vier Tabs die links angeordnet sind.

Java:
JTabbedPane mainTabs = new JTabbedPane(JTabbedPane.LEFT);

Dann füge ich dem JTabbedPane vier Tabs hinzu, jeweils mit Icon UND Text

Java:
mainTabs.addTab("Tab 1",  new ImageIcon("images/menu/img1.png"),   pnl1);
mainTabs.addTab("Tab 2",  new ImageIcon("images/menu/img2.png"),   pnl2);
mainTabs.addTab("Tab 3",  new ImageIcon("images/menu/img3.png"),   pnl3);
mainTabs.addTab("Tab 4",  new ImageIcon("images/menu/img4.png"),   pnl4);

Leider wird der Tab-Titel dann so dargestellt, dass zuerst links das Icon und danach der Text kommt:

[ICON] [TEXT]

Ich würde das Ganze jedoch gerne so darstellen, dass das Icon über dem Text steht.

[ICON]
[TEXT]

Am besten noch horizontal zentriert. Das kann doch nicht so schwer sein, oder?

Danke für jeden Tipp
mas
 
Hallo,

ich hab dir mal ein ganz kleines Beispiel gemacht, das dir eventuell weiterhilft:

Java:
package de.tutorials;

import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Dimension;

public class JTabbedPaneTest extends JFrame{

	public JTabbedPaneTest() {
		JTabbedPane pane = new JTabbedPane();
		// Tab hinzufügen
		pane.addTab("Tab", null);
		// Tab anpassen
		JLabel tab1 = new JLabel("Tab 1", new ImageIcon("images/menu/img1.png"), JLabel.CENTER);
		tab1.setVerticalTextPosition(JLabel.BOTTOM);
		tab1.setHorizontalTextPosition(JLabel.CENTER);
		pane.setTabComponentAt(0, tab1);
		add(pane);
		setSize(300, 300);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setVisible(true);
	}

	public static void main(String[] args) {
		new JTabbedPaneTest();
	}
}

Gruß

Ben
 
Hi Ben,

Vielen Dank für das leicht verständliche, funktionierende und genau auf meine Frage eingehende Beispiel.

Funktioniert einwandfrei.

Gruss
mas
 
Zurück