Tabs

Marshallbbw

Erfahrenes Mitglied
Hallo Leute,

gibt es eine Möglichkeit beim angewählten Tabulator den blauen Effekt zu entfernen. Habe bspw. eine Panel hinzugefügt was dieses blauen Effekt überdeckt. Leider ist aber noch ein blauer Tabrahmen und Tabreiter zu sehen. Mit setBackground und set Foreground konnte ich das Problem auch nicht lösen.
Ach und wenn wir eh schon dabei sind - kann man bei JButtons ebenfalls diesen Hovereffekt usw. entfernen.

Vielen Dank für eure Hilfe!
 
Hallo,

schau mal in der API nach den Setter-Methoden. Das sind die, die mit set anfangen ;) .

http://java.sun.com/j2se/1.5.0/docs/api/index.html

Falls du eclipse oder ein vergleichbaren Editor nutzt, erzeugst du einfach ein JTabbedPane oder ein JButton.

JButton btn = new JButton();

Wenn du jetzt btn. (Punkt nicht vergessen) tippst siehst du ein Menü mit allen Methoden die ein JButton unterstüzt. Geh einfach die Settermethoden durch und suche Rahmen (Border) und je nach dem welche Eigenschaft du ändern möchtest. Eclipse wird dir zu jedem dieser Einträge schon gleich den relevanten Abschnitt aus der Java API Doku zeigen.

Wenn du ein Paar dieser Settermethoden ausprobiert hast, wirst du schon eine Lösung finden.

Notfalls könntest du einen der paint Methoden von JTabbedPane überschreiben.


Vg Erdal
 
Ha lol - danke für den Tip - mit ist schon klar dass es wohl eine setter-Methode sein wird. Habe auch schon einige getestet wie setBorder usw. - leider führten diese nicht zum gewünschten Ergebnis wie ich beschrieben hatte. Vielleicht kann man diesen Stil ja auch nicht bearbeiten - verstehst du was ich meine. Glaub mir ich mach mir dass schon nicht so einfach - bevor ich hier was poste lese ich mir schon einiges durch und test manches.
 
Hallo,

mit dem Überschreiben von paintBorder() ist der Blaue Rahmen weg. Allerdings würde ich dir stark davon abraten. Der sichere und elegantere Weg ist ein Look and Feel zu setzen das einem gefällt. Beispielweise, ist beim Windows L&F gar kein blauer Rahmen vorhanden.

Schau dir auch die JGoodies L&Fs an:
http://www.jgoodies.com/freeware/looksdemo/index.html
http://www.jgoodies.com/freeware/looksdemo/images/looksdemo.png

Hier ist eine Sammlung an verschiedenen L&Fs:
http://www.javootoo.com/


Vg Erdal


Java:
import java.awt.*;
import java.io.*;

import javax.swing.*;

public class TabExample extends JFrame {

	JTabbedPaneBorderNULL tab = new JTabbedPaneBorderNULL();

	JPanel tabpanel1 = new JPanel();

	JPanel tabpanel2 = new JPanel();

	JTextArea tArea = new JTextArea();

	JTable tAble = new JTable(20, 3);

	JScrollPane scrollPane1 = new JScrollPane(tArea);

	JScrollPane scrollPane2 = new JScrollPane(tAble);

	PrintStream o = System.out;

	public TabExample() {
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setLocationByPlatform(true);
		this.setSize(500, 300);

		tabpanel1.setLayout(new BorderLayout());
		tabpanel2.setLayout(new BorderLayout());
		tabpanel1.add(scrollPane1, BorderLayout.CENTER);
		tabpanel2.add(scrollPane2, BorderLayout.CENTER);

		tab.addTab("tab1", tabpanel1);
		tab.addTab("tab2", tabpanel2);

		this.add(tab);

		this.setVisible(true);

		// Differenz: 25 (*)
		o.println(tabpanel1.getLocationOnScreen().y);
		o.println(tab.getLocationOnScreen().y);
	}

	public static void main(String[] args) {

		/*try {
			UIManager
					.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
		} catch (Exception e) {
			e.printStackTrace();
		}*/

		new TabExample();
	}

	class JTabbedPaneBorderNULL extends JTabbedPane {
		// Color col2 = Color.BLACK;
		Color col = new Color(238, 238, 238);

		// (*) In dem Bereich 20 bis 25 etwas rumspielen,
		// bis der gewünschte Effekt erreicht ist.
		// Hinweis: Bei einer Änderung der Schriftgröße der Titel oder des
		// Look&Feel
		// könnte sich der Wert ändern!
		int y = 20;

		public void paintBorder(Graphics g) {
			super.paintBorder(g);
			g.setColor(col);
			g.fillRect(0, y, this.getWidth(), this.getHeight());
		}
	}
}
 
Zurück