gpt4 book ai didi

java - 选择单元格时如何设置 JTable 标题背景颜色

转载 作者:行者123 更新时间:2023-11-30 04:52:00 25 4
gpt4 key购买 nike

我可以成功设置整个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());
}

当表格第一次绘制时,我得到运行时空指针...缺少一些愚蠢的东西..

最佳答案

您可以使用 JTable:

 jTable.getColumModel().getColumn(columnIndex).setHeaderRenderer()

您可以提供自己的单元格渲染器来渲染标题。

关于java - 选择单元格时如何设置 JTable 标题背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9646908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com