2009-12-03 157 views
1

我目前有一個問題,編輯JTable中一個單元格的內容會改變另一個單元格的內容;其中兩列是互斥的。他們都是複選框。JTable中的互斥單元編輯器

目前,如果我改變了一個單元格,直到另一個單元格被重繪,它纔會更新。因此,行中的兩個單元格都可以顯示爲在任何時候都被選中。這可以通過調用updateUI()來克服,但它很慢,並不是一個好主意。

有沒有人有任何提示或建議?

+0

不幸的是,該解決方案需要在Java 1.4中 – colinjwebb

+0

目前尚不完全清楚發生的事情與您的預期行爲。你能提供一些示例代碼嗎? – rob

回答

1

聽起來你應該使用TableModelListener來監聽TableModel的變化。當複選框被更改時,您將收到一個更新事件,然後您將使用model.setValueAt(...)更新另一個複選框。該模型負責通知視圖重新繪製單元格。

+0

我已將TableModelListener添加到TableModel。然而,它似乎只在對象被添加/刪除時觸發,而不是在對象的屬性被改變時發生......任何想法? – colinjwebb

+0

默認表格編輯器不會修改對象,它總是根據列的類別創建新的對象(字符串,日期,整數)。如果你使用的是自定義編輯器,那麼我不知道你的代碼在做什麼。如果您需要更多幫助,請發佈您的http://sscce.org(SSCCE),以證明問題。 – camickr

相關問題