在JTable中选择其列时,使标题文本变为粗体

时间:2009-09-28 21:56:18

标签: java swing jtable

当我选择其列的单元格时,

是否可以将标题文本变为粗体?怎么做?

由于 Leandro的

2 个答案:

答案 0 :(得分:1)

将自定义渲染器设置为表格标题。如果选择当前列,则将列设置字体设置为粗体。

JTable table = new JTable()
table.getTableHeader().setDefaultRenderer(new MyRenderer());

class MyRenderer implements TableCellRenderer {
    //todo implement
}

答案 1 :(得分:-1)

部分可能。你要做的就是写你的模型是这样的,在桌子的单元格选择上你的模型执行fireTableStructureChanges方法(假设你使用AbstractTableModel作为基础)。这将重新绘制整个表,包括列标题。您所要做的就是保持选择哪一列的状态。

一开始我说“部分”可能。这是因为调用fireTableStructureChanges将重新验证整个表,您将丢失当前的列模型状态 - 列宽和序列。

要使文字变粗,您可以使用HTML - 类似<html><b>your text</b></html>,但必须根据模型的内部状态动态更改

更新:也可以直接设置列表标题文本,但是模型更改或tableStructureChanged事件将使表格从模型重新读取。