我們目前在java swing中有一個JTable
/JTextEditor
焦點問題。 JTable
有一個自定義單元格編輯器,它是一個JTextField
。當輸入無效數據時,防止Java Swing JTable失去焦點
問題是當一個單元格正在編輯並且包含無效數據,並且用戶點擊一個JButton
時,文本字段將停止編輯並調用JButton
actionPerformed(點擊)。 JTable#setValueAt
處理驗證,因此如果JTextField
中的數據無效,則底層TableModel
不會更新。
理想情況下,我們不希望讓JButton
發生點擊。應重點關注JTable
或JTextField
。
單擊該按鈕將執行提交操作並關閉表格所在的框架。由於TableModel#setValueAt
中的驗證未更新該值,因此它會提交舊值。
可以這樣做嗎?我對Swing還是比較陌生的,所以我不知道要檢查什麼。
不幸的是,我們的代碼並不簡單。 UI是用XML構造的,這樣按鈕就不會知道表單上的其他東西(這是我繼承的代碼)。
在.net中,您可以通過處理驗證事件並設置取消標誌來阻止控件失去焦點。 Java是否有類似的機制?
爲更好地幫助越早編輯與[SSCCE(http://sscce.org/) – mKorbel
你能或許告訴我們按鈕的用途你的問題?爲什麼用戶會點擊它,爲什麼它首先出現?你不能簡單地在鍵入時禁用按鈕嗎?幫助我們理解具體的用例,並且我們可以更準確地幫助您。 – Ewald
乾杯傢伙。稍微修改問題以幫助嘗試繪製圖片。我更習慣於.NET,由於系統的複雜性,我無法真正發佈代碼片段。然而,我會試着用一張桌子和一個按鈕寫一個簡單的方案。 – Andez