文本单元格的工具提示

时间:2011-07-08 05:10:05

标签: swing jtable

我有一个包含文本单元格的JTable。 我想要非常一般的功能 - 如果文本不适合单元格我想在工具提示中显示它。 我应该使用TableCellRenderer,或者这样简单的功能可以轻松完成(可能只是设置一些标志?)

我也需要对不可编辑的单元格进行灰化处理。

1 个答案:

答案 0 :(得分:1)

你应该使用ToolTip,或者像Netbeans这样的专业工具(我认为这是其来源)Viewtooltips及其专用管理器(以下链接包含对原始文件的引用)

http://javabyexample.wisdomplug.com/java-concepts/34-core-java/59-tips-and-tricks-for-jtree-jlist-and-jcombobox-part-i.html

或重复使用正常的工具提示机制,这涉及: - 通过配置其渲染器测量单元的大小要求,并将渲染组件的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);