JScrollBar designen oder unsichtbar machen

peemo_royal

Mitglied
Hio!

Ich mal wieder 😉
Ich würde gerne die ScrollBar aus meinem ScrollPane in dem eine JTextArea steckt ein wenig umdesignen und an den Rest der GUI anpassen. Ich hab mir schonmal ne eigene MyScrollBar gebaut mit einer BasicScrollBarUI aber ich weiss ehrlich gesagt nicht wo ich da anpacken soll...
Ich würd zb gern die Pfeile entfernen und einen unauffälligen leicht transparenten Balken haben.
So sieht das ganze aus


Alternativ dazu, womit ich auch absolut keine Probleme hätte weil ich nicht mehr viel Zeit hab, wäre die ScrollBar komplett auszublenden. Und zwar nicht mit
setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);

sondern dass man sie einfach nur nicht mehr sieht aber trotzdem funktioniert, mit Mausscroll zb.
Hab setWheelScrollingEnabled(true); schon angeschaltet, aber es funzt halt nur wenn die SB auch angezeigt wird.

Iwelche Ideen?
Wäre euch mal wieder sehr dankbar.

Liebe Grüße
Peter
 
sehr schön, vielen dank. das kann man schonmal so nehmen.
Jetzt ist der Druck weg und ich kann mich ums designen kümmern, hab ja eine alternative.
Also bin ich da auch für Vorschläge offen. 😉
 
Frage ich mich auch die ganze Zeit, da ich schonmal gesehen habe, dass jemand die Hintergrundfarbe der Bar geändert hatte.

Geht das mit einer eigenen Implementation und Vererbung?
 
also der Ansatz ist einen eigenen UIManager zu bauen der von BasicScrollBarUI erbt. und da denn dann der Bar bzw Pane zu übergeben.
Ich scheitere nur daran dass ich nicht genau weiss was ich wie überschreiben sollte bei der UI
 
Richtig, so weit hatte ich letzemal auch gedacht. Das Problem ist, dass in dieser Form keine Ansätze existieren. Weder Snippets noch Tutorials. Es gibt zwar eine Java-Doc, aber mehr leider nicht.
 
Problem:

Bei manchen Usern macht das getVerticalScrollBar.setUI(null) eine exception (NullPointer) raus. bei manchen nicht. unabhängig von mac und windows. ne idee?
 
Welche Java-Versionen nutzen sie? Ich habe es nur mit 1.7.0_11 getestet. Ein Stacktrace wäre auch hilfreich.

Kann auch sein, dass das eigentlich nicht erlaubt ist. Darüber steht leider nichts in der API. Ansonsten mal hiermit probieren:
Java:
private static class InvisibleScrollBarUI extends ScrollBarUI {
	public static final InvisibleScrollBarUI INSTANCE = new InvisibleScrollBarUI();

	@Override
	public Dimension getPreferredSize(final JComponent c) {
		return new Dimension();
	}
}
Und dann überall so:
Code:
scrollPane.getVerticalScrollBar().setUI(InvisibleScrollBarUI.INSTANCE);
 
Zuletzt bearbeitet:
ja ich komm grad nicht an die exceptions heran, weil meine teamkollegen nur meinten:

deine scrollbar schiesst das programm ab 😉

komischerweise gehts an meinem Mac, am Win7 rechner vom Kumpel und an 2 anderen Macs dafür nicht...

Ich probier aber mal deine andere VAriante.
Danke
 

Zurück
Oben