在Java中,我只为一个JComponent(及其子代)使用不同的LookAndFeel

时间:2018-04-17 16:50:20

标签: java swing jtable look-and-feel

在Java中我使用

UIManager.setLookAndFeel(
                    UIManager.getSystemLookAndFeelClassName()

获取系统外观

但是我使用JTable并且在Windows上使用Windows LAF和OSX与OSX LAF有问题,如果我只使用

,所有问题都会解决
UIManager.getCrossPlatformLookAndFeelClassName();

是否可以让我的JTable和JScrollPane被包装使用跨平台外观而不会影响其他任何内容。

如果这是一个非常糟糕的主意?

我看到的问题是

Windows,Column Header呈现几乎与常规无法区分    表格单元格

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

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

1 个答案:

答案 0 :(得分:1)

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

所以你可以尝试类似的东西:

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

    如果这是一个非常糟糕的主意?

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