1
JTableヘッダー全体の背景色を正常に設定できます。セルが選択されたときのJTableヘッダーの背景色の設定方法
一般的に、これは次のようになります。セルが選択されたとき、私は私が立ち往生しています
m_table.getTableHeader().setBackground(new Color(205,209,235));
があるListSelectionListener
...
私はの背景を設定したいですヘッダーの現在選択されている列を別の色に変換します。 (かなり簡単です現在のセルのないバックグラウンド)
更新:
私はこの作成:
import java.awt.Color;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
import com.ee.common.StringUtil;
public class myHeaderRenderer extends DefaultTableCellRenderer
{
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)
{
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if(table != null)
{
if (isSelected) {
table.getTableHeader().setBackground(Color.orange);
}
else {
table.getTableHeader().setBackground(new Color(205,209,235));
}
}
return null;
}
}
を、私はこのようにそれを設定してみてください:
class WorksheetTable extends JTable implements EEObjectSource, EEObjectTarget {
public WorksheetTable(WorksheetTableModel model) {
super(model);
setTableHeader(new EditableJTableHeader(getColumnModel()));
}
@Override
public void createDefaultColumnsFromModel() {
super.createDefaultColumnsFromModel();
setTableHeader(new EditableJTableHeader(getColumnModel()));
getTableHeader().setToolTipText("Double Click to Edit, Right Click for more options");
for (int i=0; i<getColumnCount(); i++) {
getColumnModel().getColumn(i).setPreferredWidth(150);
getColumnModel().getColumn(i).setWidth(150);
getColumnModel().getColumn(i).setHeaderRenderer(new myHeaderRenderer());
}
テーブルが最初にペイントするときにランタイムNULLポインタが表示される...何か愚かなものが見つからない...
関連する例[here](http://stackoverflow.com/a/7137801/230513)があります。 – trashgod