定制设计JScollPane Java Swing

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

在此处输入图像描述

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

非常感谢你。

问候

您可以通过设置自定义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 } } 

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

1)覆盖JToolBar

2)大多数自定义外观都超过了它

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

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

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

 public class SimpleScrollBarUI extends BasicScrollBarUI { public static ComponentUI createUI(JComponent c) { return new SimpleScrollBarUI(); } //... }