Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom design JScollPane Java Swing

I need to design this scrollbar for all my scrollpanes :

enter image description here

With Java Swing. I am using Netbeans IDE. What is the simplest solution ?

Thank you very much.

Regards

like image 563
Vincent Roye Avatar asked Nov 21 '11 07:11

Vincent Roye


3 Answers

You can customize the look of a Swing component by setting a custom UI. In the case of a scroll pane's scroll bar, you do

scrollPane.getVerticalScrollBar().setUI(new MyScrollBarUI());

where MyScrollBarUI is derived from javax.swing.plaf.basic.BasicScrollBarUI. To do this for all scroll bars (not only in JScrollPane instances), call

UIManager.put("ScrollBarUI", "my.package.MyScrollBarUI");

before you create any Swing components.

In MyScrollBarUI, you override the following methods:

public class MyScrollBarUI extends BasicScrollBarUI {

    @Override
    protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) {
        // your code
    }

    @Override
    protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) {
        // your code
    }
}

Your scroll bar is graphically very simple, so it should not be too hard to implement.

like image 157
Ingo Kegel Avatar answered Oct 18 '22 01:10

Ingo Kegel


1) override JToolBar

2) most of Custom Look and Feel overrode that

like image 39
mKorbel Avatar answered Oct 18 '22 01:10

mKorbel


Don't forget that if you plan to use the UIManager to override all scrollbars like this

UIManager.put("ScrollBarUI", "my.custom.SimpleScrollBarUI");

then your SimpleScrollBarUI class must have the createUI method, i.e:

public class SimpleScrollBarUI extends BasicScrollBarUI {

    public static ComponentUI createUI(JComponent c) {
        return new SimpleScrollBarUI();
    }

    //...

}
like image 41
biscuitfresh Avatar answered Oct 18 '22 02:10

biscuitfresh