当前位置: 首页 > 知识库问答 >
问题:

更改JScrollPane的拇指颜色和背景颜色?

法烨华
2023-03-14

我在设计JScrollPane的样式时遇到问题。我只想能够更改拇指和背景的颜色(同时删除增加/减少按钮)。到目前为止,我尝试了以下方法:

    this.setBackground(new Color(0,0,0));
    this.viewport.setBackground(new Color(0,0,0));
    this.getViewport().setBackground(Color.BLACK);
    this.setOpaque(false);
    this.getVerticalScrollBar().setUI(new BasicScrollBarUI()
    {   
        @Override
        protected JButton createDecreaseButton(int orientation) {
            return createZeroButton();
        }

        @Override    
        protected JButton createIncreaseButton(int orientation) {
              return createZeroButton();
        }
        @Override 
        protected void configureScrollBarColors(){

        }

    });

    this.getHorizontalScrollBar().setUI(new BasicScrollBarUI()
    {   
        @Override
        protected JButton createDecreaseButton(int orientation) {
            return createZeroButton();
        }

        @Override    
        protected JButton createIncreaseButton(int orientation) {
              return createZeroButton();
        }


    });
}
private JButton createZeroButton() {
    JButton jbutton = new JButton();
    jbutton.setPreferredSize(new Dimension(0, 0));
    jbutton.setMinimumSize(new Dimension(0, 0));
    jbutton.setMaximumSize(new Dimension(0, 0));
    return jbutton;
}

而且

   UIManager.put("ScrollBar.trackHighlightForeground", (new Color(57,57,57))); 
    UIManager.put("scrollbar", (new Color(57,57,57))); 
    UIManager.put("ScrollBar.thumb", new ColorUIResource(new Color(57,57,57))); 
    UIManager.put("ScrollBar.thumbHeight", 2); 
    UIManager.put("ScrollBar.background", (new Color(57,57,57)));
    UIManager.put("ScrollBar.thumbDarkShadow", new ColorUIResource(new Color(57,57,57)));
    UIManager.put("ScrollBar.thumbShadow", new ColorUIResource(new Color(57,57,57)));
    UIManager.put("ScrollBar.thumbHighlight", new ColorUIResource(new Color(57,57,57)));
    UIManager.put("ScrollBar.trackForeground", new ColorUIResource(new Color(57,57,57)));
    UIManager.put("ScrollBar.trackHighlight", new ColorUIResource(new Color(57,57,57)));
    UIManager.put("ScrollBar.foreground", new ColorUIResource(new Color(57,57,57)));
    UIManager.put("ScrollBar.shadow", new ColorUIResource(new Color(57,57,57)));
    UIManager.put("ScrollBar.highlight", new ColorUIResource(new Color(57,57,57)));

有了上面所有的代码,我得到了一个白色背景的暗拇指。有趣的是,如果我删除setUI函数,我会得到一个默认的拇指,背景变暗...

有什么想法吗?

谢啦

解决******

上面的configureScrollBarColors函数可以通过以下方式使用:

 @Override 
        protected void configureScrollBarColors(){
            this.thumbColor = Color.GREEN;
        }

把拇指的颜色变成绿色。

共有1个答案

郜俊晤
2023-03-14

以防有人仍然在这条线索上寻求帮助:

以下行可用于更改滚动条的外观。可以更改由“u”字符包围的字段(键和颜色)。

UIManager.put("ScrollBar._key_", new ColorUIResource(_COLOR_));

更改工具栏颜色的最相关键有:

  • 拇指(拇指的一般颜色)
  • 拇指暗影(拇指的剩余阴影部分)
  • 拇指阴影(本质上是拇指的边界,用高光分成两半)
  • thumHighlight(所述边框的后半部分)
  • 轨道(背景)

例如:

UIManager.put("ScrollBar.thumb", new ColorUIResource(Color.black));

这将使拇指的主要部分变黑。

如果你想要一个完整的单色拇指,那么使用除了轨道之外的所有键,并将它们设置为相同的颜色。

如果您要绘制轮廓,请将前两个设置为color1,后两个设置为color2。

我在试图改进我自己的图形用户界面时摔倒了,经过一些小小的调整,我想我会分享我的发现。

有关更多关键点,请单击我!

 类似资料:
  • 我想改变它的颜色拇指像这样...:(我知道如何改变背景进度颜色,但不是拇指颜色)... 有没有办法用java代码实现这一点?提前谢谢!!

  • 我有一个带有半径和笔划的CardView,但当我以编程方式更改CardView背景时,半径和笔划将丢失,我希望新颜色保留在笔划内。 这是我的cardview xml 这里是我换颜色的地方:

  • 我正在使用RangeSeekBar为3种情况设置一些值(即绿色=OK,琥珀色=警告,红色=撤离)...我正在使用xml绘图来设置背景 我知道我可以通过编程更改渐变,但如何缩小起始颜色并增加结束颜色?有人能解决这个问题吗? 谢谢

  • 问题内容: 有什么方法可以更改RibbonApplicationMenuEntryPrimary(Flamingo)的背景颜色吗? 我看了看它的javadoc,但找不到方法。 问题答案: 1)请注意,我已检查API;从开始,有很多导入和扩展,它们来自许多不同的方法(这里是我尝试覆盖MetalButtonUI的尝试)。 2)也许更改内置颜色主题会很容易,但是我不建议这样做。 3)我不是Flaming

  • 这是我的seekbar: 这是我的拇指。xml: 这是我的定制搜索栏。xml: 这是我的搜索棒。巴布亚新几内亚(背景): 酒吧里没有阴影,也没有圆边。。。 我真的不明白我该怎么做。

  • 我正在使用浮动操作按钮,我想更改背景颜色。 这是我的密码 下面是我用来尝试实现这一点的代码: 我也得到我的FAB的角落,如图所示。我应该如何消除那些角落的阴影?