私はもう試した:
table.getTableHeader().setBackground(Color.BLACK);
動作しません。
編集:このコードは私のプロジェクトでのみ機能しません。他のプロジェクトで動作します。色の変化を防ぐプロパティを変更した可能性があります。または、NetBeansにデフォルトの色を保持するプロパティがあるかもしれません。私は何か他のものに気づきました。私のプロジェクトのヘッダーの色は別の方法で輝いています。色の変更が機能する例では、さまざまなグラフィックが表示されます。
編集2:何か他のもの。ボタンの色も変わらないことに気づきました。一般的なものでなければなりません。お役に立てれば。残念ながら、この場合、問題を再現できないため、SSCCEは機能しません。私は確かに正しいコンポーネント名を使用しています。
それを解決しました。 NetBeansの場合:
また、プロジェクト全体のグラフィックが外観を変更しました。
わたしにはできる。これが私の [〜#〜] 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 [〜#〜] 何が問題なのかを確認できます。
これを試してください... table.getTableHeader()。setOpaque(false);
次に、jtableヘッダーの背景を設定します
table.getTableHeader()。setBackground(Color.BLACK);
これを行うことをお勧めします:
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);
}
テーブルヘッダーも、テーブルセルなどのレンダラーコンポーネントを使用します。
これを見てください:
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);
}
});
動的な色が必要ない場合は、レンダラーのコンストラクターで色を設定することもできます。