2011-07-08 47 views
0

我有一個JTable包含文本的單元格。 我想有相當普遍的特點 - 如果文本不適合單元格我要在工具提示中顯示它。 我應該使用TableCellRenderer,還是這樣的簡單功能可以輕鬆完成(可能只是設置一些標誌?)工具提示文本單元

我也需要灰化不可編輯的單元格。

+0

你是什麼意思的「禁用」? – kleopatra

+0

「禁用」是指單元格編輯器無法打開編輯該小區 – javapowered

+0

又名:編輯 - 請讓你的技術詞彙權 – kleopatra

回答

1

你應該使用工具提示,要麼是一個專門一個像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子類,用於檢測該特殊工具提示是否必要並位於upp呃領先角落

編輯(問題的第二部分,而不是編輯細胞的配置顏色)

相同的方式繪製組件的每個配置:在自定義渲染,基本上

// 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);