Custom design JScollPane Java Swing

2019-01-13 14:54发布

问题:

I need to design this scrollbar for all my scrollpanes :

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

Thank you very much.

Regards

回答1:

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.



回答2:

1) override JToolBar

2) most of Custom Look and Feel overrode that



回答3:

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();
    }

    //...

}