2010-02-17 35 views
1

我使用JTable來顯示來自流數據源的數據。Java Swing:重新計算JTable中的值,使用TableModel還是編寫自定義編輯器?

每個數據點都表示爲一個X類型的對象,它有一個感興趣的字段,我們稱之爲valueField。我的TableModel接口的實現具有X.getId()上鍵入對象X的HashMap。

GUI的用戶可以使用JSpinner設置爲相關列中每個單元格的自定義編輯器來更改值。

但是,該值也取決於其他行中的X.valueField的值。

例如,我的表格代表3個對象X1,X2和X3。其關係式爲:

X1.valueField = X2.valueField + X3.valueField

如果用戶改變X1,X2和X3中的一個保持恆定(取決於業務邏輯),而另一個值改變保持關係一致。同樣,用戶也可以更改X2或X3。

我是否應該在我的TableModel實現中封裝關係,還是應該擴展自定義表編輯器以考慮值可以更改的方式?

我認爲這兩種方法都行得通,但我不確定哪一種方法是正確的。 Sun和其他論壇的文檔建議擴展自定義編輯器以控制該字段的值,但不考慮該值與底層數據模型的其他成員之間的關係。

任何想法非常讚賞。

00rush

回答

2

我建議,如果用戶執行MODS的是永久性的,即一旦模製成,支持數據更新 - 那麼具有臺式維持修改後的數據是正確的。另一方面,如果有編輯模式,用戶可以使用這些數據並提交完成,我會建議編輯維護模塊,直到用戶觸發提交過程。