9

私はもう試した:

table.getTableHeader().setBackground(Color.BLACK);

うまくいきません。

編集:このコードは私のプロジェクトでのみ機能しません。他のプロジェクトで動作します。色の変化を止めるプロパティを変更した可能性があります。あるいは、NetBeans には、デフォルトの色を保持するプロパティがあるかもしれません。私は別のことに気づきました。プロジェクトのヘッダーの色が別の方法で輝いています。色の変更が機能する例では、異なるグラフィックが表示されます。

編集2:他の何か。ボタンの色も変わらないことに気付きました。一般的なものでなければなりません。お役に立てれば。残念ながら、この場合、問題を再現できないため、SSCCE は機能しません。私は確かに正しいコンポーネント名を使用しています。

4

7 に答える 7

11

わたしにはできる。これが私のSSCCEです:

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

public class TableHeaderBackground {
   public static void main(String[] args) {
      Integer[][] data = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
      String[] cols = {"A", "B", "C"};

      JTable table = new JTable(data, cols);

      JTableHeader header = table.getTableHeader();
      header.setBackground(Color.black);
      header.setForeground(Color.yellow);

      JOptionPane.showMessageDialog(null, new JScrollPane(table));
   }
}

これで問題が解決しない場合は、独自のSSCCEを作成して投稿し、何が問題なのかを確認できるようにすることをお勧めします。

于 2011-10-15T16:15:36.437 に答える
8

これを行うことをお勧めします:

DefaultTableCellRenderer headerRenderer = new DefaultTableCellRenderer();
headerRenderer.setBackground(new Color(239, 198, 46));

for (int i = 0; i < myJTable.getModel().getColumnCount(); i++) {
        myJTable.getColumnModel().getColumn(i).setHeaderRenderer(headerRenderer);
}
于 2013-03-07T19:59:11.127 に答える
3

テーブル ヘッダーは、テーブル セルのようなレンダラー コンポーネントも使用します。

これを見てください:

table.getTableHeader().setDefaultRenderer(new DefaultTableRenderer(){
  {
    // you need to set it to opaque
    setOpaque(true);
  }

@Override
public Component getTableCellRendererComponent(final JTable table,
  final Object value, final boolean isSelected, final boolean hasFocus,
  final int row, final int column) {
    // set the background
    setBackground(yourDesiredColor);
  }
});

動的な色が必要ない場合は、レンダラーのコンストラクターで色を設定することもできます。

于 2011-10-16T07:44:16.127 に答える
1

解決しました。NetBeans では:

  • プロジェクト名を右クリック
  • プロパティ
  • アプリケーション - デスクトップ アプリ
  • ルック アンド フィール: 「Java デフォルト」を選択 (システム デフォルトでは機能しませんでした)
  • プロジェクトを実行する前に、Clean And Rebuild を忘れずに

また、プロジェクト全体のグラフィックも見た目が変わりました。

于 2011-10-15T17:52:40.717 に答える