2010-01-21 132 views
3

我想要做的是創建一個包含普通文本的每個單元格的JTree,但也包含每個單元格的右對齊文本(右對齊樹的邊緣,而不管層次結構級別)。在單元格中使用左對齊和右對齊文本的JTree?

我試過創建自己的TreeCellRenderer,但單元格的大小沒有被更新。我還嘗試使用自定義樹UI的this idea,但遇到類似的問題。

我也嘗試創建一個自定義組件與一個JPanel「粘」在樹的右側。這一直是最成功的,但我一直無法有樹的細胞延伸到右側和觸摸這個額外的面板:

alt text http://img718.imageshack.us/img718/3676/problem.png

回答

1

你可以嘗試使用JXTreeTable,從SwingX包。

jxtreetable example http://blogs.sun.com/geertjan/resource/outline-tim-browser.png

你會定義,然後用兩列(一個用於樹,給其他的右對齊文本)這樣一個對象,它應該工作了罰款。但是,爲了防止它看起來像表格,我建議您停用標題(setTableHeader(null)),並使用它們的「打包」方法使列處於最佳大小。

+0

有意思。謝謝! ...但由於我已經有了一個漂亮的自定義JTree,所以我不得不從1號方塊開始使用基本上是JTable的組件... – Epaga 2010-01-21 10:43:47

+0

@Epaga - 請注意,JXTreeTable實際上是一個表格,帶有樹作爲第一列的渲染器(加上很多其他調整來完成這項工作)。重點是這非常相似,你甚至可以設置你已經使用的樹形單元格渲染器,用於第一列。數據是像樹一樣管理的,基本上treenodes包含一個「getValueAt」,所以它通常不會改變你的數據模型。 – Gnoupi 2010-01-21 11:03:07