JScrollbar UI verändern

Status
Nicht offen für weitere Antworten.

_tiGGa_

Mitglied
hallo,

ich möchte gern für mein projekt die gui der scrollbar ändern,
also die eigentliche scrollbar, buttons, shadow und und und verändern :)

nun hab ich gelesen, das man die einzelnen eigenschaften mit dem UI.Manager ändern kann.

nun ändert dies aber nicht die eigentliche gui.
wie kann ich diese ändern?

ich hoffe ihr könnt mir helfen.

danke im voraus
tigga

EDIT:

ok, hab es nun doch geschaft :)

aber wie kommt man an die Button in einer Scrollbar ran?
möchte da gerne noch die Paintmethode überschreiben
 

André Uhres

Top Contributor
Code:
protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) {...}
 

_tiGGa_

Mitglied
hallo,

paintThumb ist ja nur für die eigentliche Srollbar, also der Balken,
den ich bewegen kann.
Diesen hab ich ja schon verändert.

Mir ist nur noch nicht ganz klarm, wie ich die Paintmethode der buttons überschreiben kann.

mfg
tigga
 

kleiner_held

Top Contributor
Dafuer musst du wohl die UIKlasse ueberschreiben und am JScrollbar deine UIKlasse installieren.
BasicScrollBarUI hat die Methoden createDecreaseButton() und createIncreaseButton(), diese Methoden muesstest du ueberschrieben und darin deine eigene Implementierung von BasicArrowButton erzeugen (oder gleich einen eigenen JButton).
Je nach verwendetem L&F solltest du nicht direkt die BasicXYZ Klassen ueberschreiben sondern sondern z.B. MetalScrollBarUI und MetalScrollButton.

Also viel Arbeit und neue Probleme, wenn du das L&F austauschbar machst - meiner Meinung nach lohnt sich das nicht (kommt natuerlich drauf an was Du genau erreichen willst).
 

André Uhres

Top Contributor
Code:
package gui;
/*
* ScrollKnobDemo.java
*/
import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.metal.*;
public class ScrollKnobDemo extends JFrame {
    private JScrollPane jScrollPane1;
    private JTextArea jTextArea1;
    public ScrollKnobDemo() {
        super("Scroll Knob Demo");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setSize(300, 300);
        setLocationRelativeTo(null);
        jScrollPane1 = new JScrollPane();
        jTextArea1 = new JTextArea();
        jTextArea1.setText("test test test test test test test test test test " +
                "test test test test test test test test test test test \ntest " +
                "\ntest \ntest \ntest \ntest \ntest \ntest \ntest \ntest \ntest " +
                "\ntest \ntest \ntest \ntest \ntest \ntest \ntest \ntest \ntest \ntest \n");
        jScrollPane1.setViewportView(jTextArea1);
        getContentPane().add(jScrollPane1, BorderLayout.CENTER);
        jScrollPane1.getVerticalScrollBar().setUI(new CustomScrollBarUI());
        jScrollPane1.getHorizontalScrollBar().setUI(new CustomScrollBarUI());
    }
    public static void main(final String args[]) {new ScrollKnobDemo().setVisible(true);}
}
class CustomScrollBarUI extends MetalScrollBarUI {
    protected void paintThumb(final Graphics g, final JComponent c, final Rectangle thumbBounds) {
        Graphics2D g2 = (Graphics2D)g;
        int x = thumbBounds.x +1;
        int y = thumbBounds.y +1;
        int w = thumbBounds.width -2;
        int h = thumbBounds.height -2;
        g.setColor(Color.GREEN);
        g.fillRect(x+1,y+1,w,h);
        g.setColor(Color.YELLOW);
        g.drawRect(x,y,w,h);
        g2.setStroke(new BasicStroke(4f));
        if (scrollbar.getOrientation() == JScrollBar.VERTICAL){
            g.drawLine(x,y+h/2,x+w,y+h/2);
        }else{
            g.drawLine(x+w/2,y,x+w/2,y+h);
        }
        incrButton.setBackground(Color.YELLOW);
        decrButton.setBackground(Color.YELLOW);
        incrButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
        decrButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
    }
}
 

_tiGGa_

Mitglied
hallo, ich dank euch.

zu kleiner held:
naja, ich "bastel" mir so selber n LnF nach dem aerith-layout zusammen.
dieses wird dann nicht mehr geändert, bzw. man kann dann im programm selbst nicht mehr das LnF ändern.
aber mal schaun ob es so klappt.

zu André Uhres:
danke dir, doch das hab ich schon so gemacht, wie in deiner beispielklasse,
doch ich möchte gerne die paintmthode der buttons überschreiben.

jetzt hab ich die buttons mal ganz weg gemacht, und finde,
sieht ganz jut aus :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Swing JScrollBar AWT, Swing, JavaFX & SWT 2
V JScrollBar soll weiterscrollen, wenn Inhalt von JTextArea erweitert wird AWT, Swing, JavaFX & SWT 7
K Swing JScrollPane - JScrollBar anzeigen, wenn Frame verkleinert wird AWT, Swing, JavaFX & SWT 3
R Swing JScrollBar mit JTextField koppeln AWT, Swing, JavaFX & SWT 3
P JScrollBar designen oder unsichtbar machen AWT, Swing, JavaFX & SWT 10
G Swing Value von einer JScrollBar auf eine andere übertragen AWT, Swing, JavaFX & SWT 2
T Swing JScrollBar fetter machen? AWT, Swing, JavaFX & SWT 2
H JScrollBar nicht verstellbar AWT, Swing, JavaFX & SWT 2
B Swing JScrollBar in einem JPanel mit FlowLayout AWT, Swing, JavaFX & SWT 15
A Swing JPanel in JScrollBar scrollbar machen AWT, Swing, JavaFX & SWT 4
D Swing JScrollbar ganz nach unten scrollen AWT, Swing, JavaFX & SWT 2
A JScrollBar durch Button ersetzten AWT, Swing, JavaFX & SWT 2
xehpuk Swing JScrollBar wird nicht eingeblendet, wenn JTable befüllt wird AWT, Swing, JavaFX & SWT 4
B Swing JScrollPane - observen wann eine JScrollBar angezeigt wird? AWT, Swing, JavaFX & SWT 5
V Position der JScrollBar ändern AWT, Swing, JavaFX & SWT 5
N Swing JTextArea/JScrollpane: JScrollbar position AWT, Swing, JavaFX & SWT 8
D Swing JScrollbar zentrieren AWT, Swing, JavaFX & SWT 3
Asamandra Benutzerdefinierte JScrollBar AWT, Swing, JavaFX & SWT 4
1 Eigene Component in JScrollBar + fixe Linien??? AWT, Swing, JavaFX & SWT 2
Pithecanthropus Swing JScrollBar-Position festlegen.. AWT, Swing, JavaFX & SWT 3
R JScrollBar - Immer drei Zeilen weiter AWT, Swing, JavaFX & SWT 10
R JScrollBar mit eigenem look and feel AWT, Swing, JavaFX & SWT 6
C JScrollpane eigenen jScrollBar einfügen AWT, Swing, JavaFX & SWT 2
R JScrollBar / JScrollPane: Ermitteln ob ganz unten AWT, Swing, JavaFX & SWT 2
F JScrollbar Verschiebung des Viewport ermitteln AWT, Swing, JavaFX & SWT 3
M JScrollbar + JTable + Zeilen wie in Excel hinzufügen AWT, Swing, JavaFX & SWT 14
M JScrollbar + Adjustmentlistener + Button AWT, Swing, JavaFX & SWT 3
M Listener für Button auf JScrollbar AWT, Swing, JavaFX & SWT 10
J JScrollBar scroll-Verhalten auf 2 JButtons umleiten? AWT, Swing, JavaFX & SWT 2
J JScrollBar lässt sich nicht auf minimum setzten AWT, Swing, JavaFX & SWT 7
D Problem mit JScrollBar, AutoScroll und JTextArea AWT, Swing, JavaFX & SWT 2
B horizontale bzw. vertikale JScrollBar breite von JScrollPane AWT, Swing, JavaFX & SWT 5
loadbrain Mehrer Panesl: JScrollBar, JScrollPane? AWT, Swing, JavaFX & SWT 9
K JTextArea + JScrollBar AWT, Swing, JavaFX & SWT 11
B Setzen von Position > 90 bei JScrollbar nicht möglich AWT, Swing, JavaFX & SWT 3
V Farben setzen bei einigen Komponenten (JScrollBar, . AWT, Swing, JavaFX & SWT 3
P Breite eines JScrollbar vergrößern, aber wie? AWT, Swing, JavaFX & SWT 8
M JScrollbar bei einer JTable AWT, Swing, JavaFX & SWT 5
L JScrollBar AWT, Swing, JavaFX & SWT 3
B Problem mit der Kombination von JScrollBar und JTextArea AWT, Swing, JavaFX & SWT 2
S Anzeige-Wirrwar in JScrollbar AWT, Swing, JavaFX & SWT 3
B Listener entfernen bei JScrollbar AWT, Swing, JavaFX & SWT 6
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
H JItem während der Programmlaufzeit verändern AWT, Swing, JavaFX & SWT 8
D JButton Form verändern AWT, Swing, JavaFX & SWT 4
ruutaiokwu Swing windowStateChanged macht exakt das Gegenteil beim Verändern der Fenstergrösse AWT, Swing, JavaFX & SWT 3
E wie Schriftfarbe in JEditorPane verändern? AWT, Swing, JavaFX & SWT 10
J SplitPane Aussehen des Divider verändern AWT, Swing, JavaFX & SWT 7
A Swing Fensterinhalt verändern AWT, Swing, JavaFX & SWT 3
R Swing Verändern der Ausrichtung JButton und neu anzeigen AWT, Swing, JavaFX & SWT 2
Thallius JTable dynamisch Spaltenanzahl verändern AWT, Swing, JavaFX & SWT 2
A Swing GUI - Button soll Frame verändern AWT, Swing, JavaFX & SWT 4
J Textlabel verändern mit parallelen Threads AWT, Swing, JavaFX & SWT 7
G JFrame - manuell Größe verändern AWT, Swing, JavaFX & SWT 6
M Textfarbe JButton verändern AWT, Swing, JavaFX & SWT 2
F JavaFX Position von Image angeben/verändern AWT, Swing, JavaFX & SWT 2
D Java Swing, Label lässt sich nicht mit Checkboxen/Knopf verändern AWT, Swing, JavaFX & SWT 2
A JPanel größe verändern AWT, Swing, JavaFX & SWT 4
P JFrame manuell Grösse verändern durch 'mouseDragged' AWT, Swing, JavaFX & SWT 3
M JTabbedPane verändern mit Nimbus Look and Feel AWT, Swing, JavaFX & SWT 1
D JFreeChart range der Y Achse verändern. AWT, Swing, JavaFX & SWT 1
D Swing Jlist Größe während der Laufzeit verändern. AWT, Swing, JavaFX & SWT 11
A Swing JLabel/JTextField Inhalt mit JSlider verändern AWT, Swing, JavaFX & SWT 12
A JScrollPane - ScrollBar Buttongröße verändern AWT, Swing, JavaFX & SWT 1
I JTable Inhalte löschen ohne den JTable zu verändern! AWT, Swing, JavaFX & SWT 5
S Größe von Panel verändern welches auf anderem Panel sitzt AWT, Swing, JavaFX & SWT 10
B MessageBox Position Verändern AWT, Swing, JavaFX & SWT 8
N MVC - Logik zum Verändern der View AWT, Swing, JavaFX & SWT 8
A Swing Fenstergröße mittels Menü verändern AWT, Swing, JavaFX & SWT 3
S SWT Shell durch Event in der Größe verändern AWT, Swing, JavaFX & SWT 7
S Swing Größe von JLabels verändern sich in einem Panel unterschiedlich AWT, Swing, JavaFX & SWT 6
M Swing XML Datei in JTable darstellen + verändern AWT, Swing, JavaFX & SWT 3
H JFrame in der Laufzeit verändern AWT, Swing, JavaFX & SWT 11
B Schriftgröße allgemein verändern? AWT, Swing, JavaFX & SWT 4
W JLabel-Text ab best. Zeitpunkt nicht mehr verändern AWT, Swing, JavaFX & SWT 2
L Swing Image zur Laufzeit verändern AWT, Swing, JavaFX & SWT 6
O Größe von Komponenten im JFrame manuell verändern AWT, Swing, JavaFX & SWT 2
J Swing jTable verändern AWT, Swing, JavaFX & SWT 29
S SWT Table Größen verändern AWT, Swing, JavaFX & SWT 10
C private Panel anderer Klasse verändern AWT, Swing, JavaFX & SWT 11
Dragonfire Swing Hintergrund aller Komponenten verändern AWT, Swing, JavaFX & SWT 2
H Mit for-schleife die Componenten eines Frames verändern AWT, Swing, JavaFX & SWT 5
C Spielfeld Gitter - Einzelne Zellen verändern AWT, Swing, JavaFX & SWT 18
R JTable Hintergrund der Zeile abhängig von Inhalt einer Zelle verändern AWT, Swing, JavaFX & SWT 3
M Panelinhalt im Programm verändern AWT, Swing, JavaFX & SWT 12
L SWT Button Text verändern AWT, Swing, JavaFX & SWT 16
A Swing Bei größe verändern des Fensters Grafik weg AWT, Swing, JavaFX & SWT 3
S JButton - Hintergrund verändern AWT, Swing, JavaFX & SWT 7
D JPanel nach ein paar sekunden verändern AWT, Swing, JavaFX & SWT 5
E Strichstäke bei einem Kreisbogen verändern AWT, Swing, JavaFX & SWT 3
G Gap zwischen JButton-Rand und JButton-Icon verändern AWT, Swing, JavaFX & SWT 2
G Mauszeiger verändern AWT, Swing, JavaFX & SWT 10
K Image verändern AWT, Swing, JavaFX & SWT 8
S Hintergrundfarbe in einer Spalte der JTable verändern AWT, Swing, JavaFX & SWT 3
G Styling verändern AWT, Swing, JavaFX & SWT 4
A Fenstergrösse soll sich konstant verändern AWT, Swing, JavaFX & SWT 8
G Probleme mit Content bei Null-Layout verändern AWT, Swing, JavaFX & SWT 7
Z TextField aus ActionListener von JButton verändern AWT, Swing, JavaFX & SWT 10
A Jface: Wie Inhalt des Hauptbereichs verändern AWT, Swing, JavaFX & SWT 5
G Pixel ablaufartig verändern AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben