16

我需要为我所有的滚动窗格设计这个滚动条:

在此处输入图像描述

使用 Java Swing。我正在使用 Netbeans IDE。什么是最简单的解决方案?

非常感谢你。

问候

4

3 回答 3

21

您可以通过设置自定义 UI来自定义Swing 组件的外观。对于滚动窗格的滚动条,您可以

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

从哪里MyScrollBarUI得出javax.swing.plaf.basic.BasicScrollBarUI。要对所有滚动条(不仅在JScrollPane实例中)执行此操作,请调用

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

在创建任何 Swing 组件之前。

MyScrollBarUI中,您覆盖以下方法:

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
    }
}

您的滚动条在图形上非常简单,因此实现起来应该不会太难。

于 2011-11-21T09:51:36.133 回答
2

1) 覆盖JToolBar

2)大多数自定义外观和感觉都覆盖了

于 2011-11-21T07:49:11.643 回答
2

不要忘记,如果您打算像这样使用 UIManager 覆盖所有滚动条

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

那么你的 SimpleScrollBarUI 类必须有 createUI 方法,即:

public class SimpleScrollBarUI extends BasicScrollBarUI {

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

    //...

}
于 2016-02-16T23:13:29.407 回答