2010-07-30 27 views
1

我正在接近完全實現JTree來表示系列的集合。 層次結構是Show> Season> Episode。Java:實現MutableTreeNode,刪除類似的舊方法?

這些都是類,它們中的每一個實現MutableTreeNode接口。 當開始這個項目時,我不知道我將需要這個接口,所以我在Episode中定義了像'removeFromSeason'這樣的方法,'在季節中添加(Episode ep)'..

現在, m實現這個MutableTreeNode接口我看到許多方法重疊。 所以我想知道我應該如何處理這個問題。例如:add(Episode ep)只需要一個Episode作爲參數,而'insert(MutableTreeNode child,int index)'使用2個參數,即子節點和索引。在添加的劇集中,我只是將該劇集添加到ArrayList的隨機位置。每個Episodes都有一個包含Episode編號的變量,所以這不是問題。

如果我完全替換add方法,我還應該給出Episode的索引,這可能會使ArrayList複雜化。或者我會做雙重工作,將情節和episode.getNumber()作爲參數傳遞給我,這對我來說似乎很愚蠢。

我也可以保留原來的方法和新的方法,並讓其中一個調用另一個。這對我來說並不合適。

對於如何處理這個,你有什麼看法?任何意見表示讚賞:)

危害

回答

1

當我想實現一棵樹,我提供的TreeModel的一個實現,我做所有的樹處理它。我從來沒有實現TreeNode或MutableTreeNode(節點不需要實現任何接口)。這將業務對象從UI關注點中釋放出來。當然,當發生變化時,必須以某種方式通知TreeModel。

+0

因此,我將不得不編寫自己的TreeModelListeners? 我會在編寫自己的TreeModel時查找更多的東西,謝謝:) – 2010-08-01 09:54:34