在 Java 中,我仅对单个 JComponent(及其子组件)使用不同的 LookAndFeel

问题描述 投票:0回答:1

在Java中我使用

UIManager.setLookAndFeel(
                    UIManager.getSystemLookAndFeelClassName()

获取系统外观和感觉

但是,我正在使用 JTable,并且在使用 Windows LAF 的 Windows 和使用 OSX LAF 的 OSX 上遇到问题,如果我只使用

,所有问题看起来都可以解决
UIManager.getCrossPlatformLookAndFeelClassName();

是否可以只让我的 JTable 和它所包含的 JScrollPane 使用跨平台外观和感觉而不影响其他任何东西?

如果是这样,这真的是一个坏主意吗?

我看到的问题是:

Windows,列标题渲染几乎与常规没有区别 表格单元格

OSX,单元格背景颜色与面板背景相同

OSX,表格单元格之间没有网格线。

java swing jtable look-and-feel
1个回答
1
投票

组件的 LAF 在创建组件时确定。

所以你可以尝试这样的事情:

  1. 设置临时LAF
  2. 创建组件并将其添加到框架中。
  3. 恢复 LAF

如果是这样的话,这真的是一个坏主意吗?

不确定是否存在隐藏问题。

© www.soinside.com 2019 - 2024. All rights reserved.