java - JScrollPane实际滚动条的自定义显示(设为透明)

标签 java swing jscrollpane alpha-transparency jscrollbar

我有一个带有 JScrollPane 的文本区域,并且正在使用以下内容定制显示;

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

但这没有任何区别。

自定义滚动条显示的首选方式是什么?

最佳答案

and the scroll and text area are showing as transparent (non-opaque), however, I can't seem to affect the actual scroll bars. They still appear as the default grey color where I'd like to change their color and/or make them transparent to match the rest.

有两种方法

  • 您需要重写BasicScrollBarUI()

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

  • 只有 VerticalScrollBar,您需要重写并添加 Horizo​​ntalScrollBarScrollPaneLayout(),返回 Horizo​​ntal JScrollBar 的坐标,

关于java - JScrollPane实际滚动条的自定义显示(设为透明),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18181964/

相关文章:

Java 2D数组,可以设置单独的大小吗?

java - 为什么 JPanel 不显示在 JScrollPane 上?

java - JScrollPane问题

java - 关于线程安全和 JPA EntityManager

java - 按钮保持焦点

Java:即使单击 "No",退出操作上的 JFrame 仍会关闭

java - JScrollPane 缩放 View ,里面有组件

java - 如何更改JButton?

java - 我需要从列表标签内的 json 脚本获取数据

java - Android 在 Eclipse 中跟踪错误?