【问题标题】:How to change the primary color of a JTableHeader in Windows LookAndFeel?如何在 Windows LookAndFeel 中更改 JTableHeader 的原色?
【发布时间】:2019-05-23 06:17:25
【问题描述】:

我已经创建了一个类似的帖子,在那里我以 EDIT 的形式提出了这个问题。但我不认为很多人会这样看。我的问题是,我如何更改 JTableHeader 的背景颜色(即列的颜色)。我知道这是正常的

table.getHeader().setBackground(Color.blue);

应该可以,但是当我在 Windows 外观上设置 LookAndFeel 时这不起作用。 com.sun.java.swing.plaf.windows.WindowsLookAndFeel

【问题讨论】:

  • 你设置的外观和感觉是什么?
  • @Sambit com.sun.java.swing.plaf.windows.WindowsLookAndFeel

标签: java windows jtable look-and-feel jtableheader


【解决方案1】:

建议使用下面的look和fee。

UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());

我在下面提供了完整的可运行示例代码,您可以在其中看到蓝色表格标题。

import javax.swing.*;
import java.awt.*;

public class TableHeaderExample {
  private JFrame jFrame;

  public TableHeaderExample() {
    jFrame = new JFrame();
  }

  private void setLookAndFeel() {
    try {
      UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
      //Do not use below.
//      UIManager.setLookAndFeel(
//              "com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }

  public void createTableWithColorHeader() {
    setLookAndFeel();
    String data[][] = {{"Sambit", "23", "1000"}, {"John", "25", "200"}};
    String column[] = {"EMP NAME", "EMP AGE", "EMP SALARY"};
    JTable jTable = new JTable(data, column);
    jTable.getTableHeader().setBackground(Color.blue);
    jTable.setBounds(30, 40, 200, 300);
    JScrollPane sp = new JScrollPane(jTable);
    jFrame.add(sp);
    jFrame.setSize(300, 400);
    jFrame.setVisible(true);
    jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  }


  public static void main(String[] args) {
    TableHeaderExample example = new TableHeaderExample();
    example.createTableWithColorHeader();
  }
}

见下图。

另请参阅以下链接。 http://leo.ugr.es/elvira/devel/Tutorial/Java/uiswing/misc/plaf.html 引用一行是

IManager.getCrossPlatformLookAndFeelClassName() 返回字符串 保证工作的一种外观——Java 外观。 UIManager.getSystemLookAndFeelClassName() 指定外观 对于当前平台。在 Win32 平台上,这指定 Windows 外观和感觉

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-17
  • 2011-04-23
  • 2011-06-08
  • 2019-09-08
  • 1970-01-01
相关资源
最近更新 更多