我有一个包含文本单元格的JTable。
我想要非常一般的功能 - 如果文本不适合单元格我想在工具提示中显示它。
我应该使用TableCellRenderer
,或者这样简单的功能可以轻松完成(可能只是设置一些标志?)
我也需要对不可编辑的单元格进行灰化处理。
答案 0 :(得分:1)
你应该使用ToolTip,或者像Netbeans这样的专业工具(我认为这是其来源)Viewtooltips及其专用管理器(以下链接包含对原始文件的引用)
或重复使用正常的工具提示机制,这涉及: - 通过配置其渲染器测量单元的大小要求,并将渲染组件的pref宽度与实际列宽进行比较,如有必要,相应地设置工具提示 - JTable子类中的一些逻辑,用于检测是否需要特殊工具提示并位于上方前角
编辑(问题的第二部分,不可编辑单元格的配置颜色)
与渲染组件的每个配置相同:在自定义渲染器中,基本上是
// we are in getXXRenderingComponent
if (table.isCellEditable(row, column)) {
setForeground(normalColor);
} else {
setForeground(notEditableColor);
}
或者使用SwingX(无法抗拒,我可以:)
Highlighter hl = new ColorHighlighter(HighlightPredicate.READ_ONLY,
null, notEditableColor);
table.addHighlighter(hl);