2010-01-15 63 views
2

如在一箇舊的文章描述我有JTreeTable工作:Sun Developer Network如何在JTreeTable中正確選擇?

這裏是相同的文件,但略作調整,爲Java 6: http://edtaylor80.angelfire.com

如果你運行這個小例子程序,你會發現,選擇按預期開始工作,當您單擊一個隨機單元格時,將選擇整行。這種行爲是需要的。但是,只要節點展開後行爲發生變化,現在只能通過單擊執行節點(名稱)來選擇行。我仍然希望能夠通過單擊一個隨機單元格來選擇整行。我如何修改源代碼來完成此操作?

回答

1

在單擊第一列以打開節點之前,JTable沒有單元編輯器。一旦執行該操作,表格就會有一個活動單元格編輯器,它是AbstractCellEditor的一個實例,作爲JTreeTable示例源的一部分。在其中的實施,你會發現這一點:

public boolean shouldSelectCell(EventObject anEvent) { return false; } 

這得到由BasicTableUI當它確定是否調整選擇或不叫。正如你所看到的,它總是會返回false。這就是爲什麼,一旦你打開一個節點,你會看到這種奇怪的選擇行爲。

關於樹表的主題,我建議您查看NetBeans的Outline。這是一個易於使用的實現,比來自Sun的JTreeTable示例少得多。你可以在this post找到鏈接和演示。

+0

這對我有效。感謝您對NetBeans Outline的關注。 – clartaq 2010-01-15 15:05:30

+0

謝謝!我不願意首先嚐試netbeans Outline,從JXTreeTable中得到一個不好的經驗,它的瘋狂的靜態不可見類阻止你以正常的方式改變組件的行爲,但是NetBeans真的很棒!我現在已經將它添加到我的Eclipse項目中了! – 2010-01-15 15:16:26