- 按了Enter
- 使用 Tab 鍵跳到下一格
- 用滑鼠點擊表格里的其他欄位
這時抓取 table 內的值可能是錯誤的,因為這些值尚未存入 table model裡。這個問題可以透過下列方法解決。
替 table 多加 terminateEditOnFocusLost 的 Client Property:
當其他元件獲得 focus 時,便會停止編輯狀態。但僅限於視窗內的元件,點擊"縮小"或"放大"視窗的按鈕則無法作用。
如果你想要透過某些元件來停止編輯狀態,比如說一個 "next" 按鈕,你可以在按鈕的 listener 中加上:
另外,點擊 JTableHeader 並不會搶走 focus,要解決這個問題你可以替 table header 加上 mouse listener。