java - 更改选项卡式面板的背景颜色

标签 java swing colors background tabs

问题:无法更改选项卡式面板内容区域的边缘或选项卡背景颜色

尝试过:将面板设置为不透明,更改 UIManager 默认值以及其他一些随机操作。

enter image description here

代码:https://gist.github.com/DarkGuardsman/b86c542cc168d1c792a01a4d44dba229

注意:我没有编写所有这些代码,因为我正在通过界面更改来更新现有项目。因此,请注意解决方案而不是编码风格。

最佳答案

我找到了一个解决方案,尽管我很确定这不是最好的解决方案。在发帖之前我本来是打算这么做的。通读 UI 代码后,我发现它在内容面板周围绘制了边框。覆盖大部分边框的paintTabBackground方法解决了这个问题。

private class TabUI extends BasicTabbedPaneUI
{
    @Override
    protected void paintTabBackground(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected ) {
        g.setColor(LauncherFrame.secondaryColor);
        switch(tabPlacement) {
            case LEFT:
                g.fillRect(x+1, y+1, w-1, h-3);
                break;
            case RIGHT:
                g.fillRect(x, y+1, w-2, h-3);
                break;
            case BOTTOM:
                g.fillRect(x+1, y, w-3, h-1);
                break;
            case TOP:
            default:
                g.fillRect(x+1, y+1, w-3, h-1);
        }
    }
}

enter image description here

关于java - 更改选项卡式面板的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38602038/

相关文章:

java - 如何使用 Hibernate Projection 设置默认的零 SUM 值?

java - 我如何在 Java 中去隔行扫描图像?

java - 当我编译代码时并发修改异常,

java - 如何将 Web 服务返回的集合 (ArrayList) 绑定(bind)到 Swing 中的 JTable?

java - JList 由于某种原因没有更新

iOS UIImage 如何以编程方式将黑色转换为透明?

java - Eclipse 格式化程序以保持单行

java - 如何在 JFrame 中将 Jpanel 居中?

c# - 在瓷砖照明中混合颜色的最佳方式? (新华社)

java - 如何将Bufferedimage转换为索引类型,然后提取argb调色板