Как изменить основной цвет JTableHeader в Windows LookAndFeel? - PullRequest
0 голосов
/ 23 мая 2019

Я уже создал аналогичный пост, где я задал этот вопрос как РЕДАКТИРОВАТЬ. Но я не думаю, что многие люди увидят это так. У меня вопрос, как я могу изменить цвет фона JTableHeader (так что цвета столбцов). Я знаю, что обычно

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

должно работать, но это не работает, когда я настраиваю LookAndFeel для Windows. com.sun.java.swing.plaf.windows.WindowsLookAndFeel

1 Ответ

1 голос
/ 23 мая 2019

Рекомендуется использовать приведенный ниже вид и плату.

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();
  }
}

Смотрите ниже изображение.enter image description here

Также см. Следующую ссылку.http://leo.ugr.es/elvira/devel/Tutorial/Java/uiswing/misc/plaf.html Цитировать одну строку можно следующим образом:

IManager.getCrossPlatformLookAndFeelClassName () Возвращает строку для одного гарантированно работающего внешнего вида - Java Look & Feel.UIManager.getSystemLookAndFeelClassName () Определяет внешний вид для текущей платформы.На платформах Win32 это указывает Windows Look & Feel

...