【发布时间】:2009-09-28 21:56:17
【问题描述】:
当我选择其列的单元格时,是否可以将标题文本变为粗体?怎么做?
谢谢 莱安德罗
【问题讨论】:
当我选择其列的单元格时,是否可以将标题文本变为粗体?怎么做?
谢谢 莱安德罗
【问题讨论】:
将自定义渲染器设置为表头。如果当前列被选中,则列设置字体为粗体。
JTable table = new JTable()
table.getTableHeader().setDefaultRenderer(new MyRenderer());
class MyRenderer implements TableCellRenderer {
//todo implement
}
【讨论】:
部分可能。您需要做的是编写您的模型,以便在表格的单元格选择中您的模型执行fireTableStructureChanges 方法(假设您使用AbstractTableModel 作为基础)。这将重新绘制整个表格,包括列标题。您所要做的就是保持选择了哪一列的状态。
一开始我说“部分”可能。这是因为调用 fireTableStructureChanges 将重新验证整个表,您将丢失当前的列模型状态 - 列宽和序列。
要使您的文本加粗,您可以使用 HTML - 例如<html><b>your text</b></html>,但它必须根据模型的内部状态动态更改
更新:也可以直接设置列表标题文本,但模型更改或 tableStructureChanged 事件将使表从模型中重新读取。
【讨论】: