首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JTableHeader LookAndFeel中更改LookAndFeel的主颜色?

如何在JTableHeader LookAndFeel中更改LookAndFeel的主颜色?
EN

Stack Overflow用户
提问于 2019-05-23 06:17:25
回答 1查看 177关注 0票数 0

我已经创建了一个类似的帖子,我问了这个问题作为编辑。但我不认为很多人会看到这种情况。我的问题是,如何更改JTableHeader的背景色(即列的颜色)。我知道这很正常

代码语言:javascript
复制
table.getHeader().setBackground(Color.blue);

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-23 06:52:02

建议使用以下外观和费用。

代码语言:javascript
复制
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());

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

代码语言:javascript
复制
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 & to。UIManager.getSystemLookAndFeelClassName()指定当前平台的外观。在Win32平台上,这指定了Windows和the

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56269067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档