我使用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