自定义显示JScrollPane实际滚动条(使透明)

时间:2013-08-12 07:54:40

标签: java swing jscrollpane alpha-transparency jscrollbar

我有一个带有JScrollPane的文字区域,我正在使用像<; p>这样的东西来定制显示

    JTextArea text = new JTextArea();
    text.setOpaque(false);
    text.setFont(...);
    text.setForeground(Color.white);
    text.setBackground(Color.black);
    JScrollPane scroll = new JScrollPane(text);
    scroll.setOpaque(false);
    scroll.getViewport().setOpaque(false);

并且滚动和文本区域显示为透明(非不透明),但是,我似乎无法影响实际的滚动条。 它们仍然显示为默认的灰色,我希望在其中更改颜色和/或使其透明以匹配其余颜色。

我尝试过像

这样的事情
     scroll.setBackground(Color.black);
     scroll.getVerticalScrollBar().setOpaque(false);

但它没有任何区别。

为滚动条执行自定义显示的首选方法是什么?

1 个答案:

答案 0 :(得分:1)

  

并且滚动和文本区域显示为透明(非不透明),   但是,我似乎无法影响实际的滚动条。他们仍然   显示为默认的灰色,我想改变它们的颜色   和/或使它们透明以匹配其余部分。

有两种方式

  • 您需要覆盖BasicScrollBarUI()

  • 没有任何commnets milion dollars baby by @aterai

  • 只有VerticalScrollBar,您需要覆盖并添加HorizontalScrollBarScrollPaneLayout()返回Horizontal JScrollBar的协调,