目前日期文章:201104 (5)

瀏覽方式: 標題列表 簡短摘要

今天發現當我在 JTable 編輯 cell 時,直接按 button 儲存 JTable 內的值,結果最後一個 cell 卻沒有資料。最後發現當 JTable focus lost 時,並不會去執行 setValueAt,造成最後一個 cell 的值沒有被儲存。

上 google 查詢,發現很多人都在 JTable 加一個 FocusListener 去處理。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

JTextField 的 event 主要的有二個 CaretEvent 及 DocumentEvent。CaretEvent 用於通知感興趣的參與者事件源中的文本插入符已發生更改。DocumentEvent 用於文檔更改通知的介面。它提供一些高層級資訊,比如更改型別、在哪兒發生更改,以及更多具體的結構性更改(插入和移除哪些 Element)。

CaretListener 的 caretUpdate 主要是用於游標改變時,並不能真正得知 JTextField 內文是否有改變,所以應用上比較沒有用處。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

JCalendar 是一個好用的日期選擇元件,而且還是免費的。下載網址:http://www.toedter.com/en/jcalendar/index.html

今天在寫 MVC 架構,為了把 view 的資料經由 control 傳遞到 model 裏,所以需要監聽 JCalendar 的事件。看了一下原始程式裏面的範例,發現 propertyChange 的存在,就測試了一下 PropertyChangeListener。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

JTable 原始設定是不支援編輯儲存格的,也就是只能看而已,但是有時候就希望能直接編輯 JTable 比較方便,而不是透過一個對方框來編輯資料。這篇文章寫到一半才發現,原來 DefaultTableModel 是有支援儲存格編輯功能,而是我常用的 AbstractTableModel 不支援才對。

一開始用 Google 查了很多資料,發現不是叫人自製 CellEditor,不然就是教人用 DefaultCellEditor(JComboBox) 來加入 JComboBox。都沒有很簡單的直接按二下就可以開始編輯,到最後一行又會自動產生一行新的。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

jarsigner.exe 是包含在 JDK 裏面的一個小程式,在一般人下載的 JRE 是沒有的。我平時都用 eclipse 寫 java 程式,根本也用不到 JDK。如果只是單單為了 jarsigner.exe 去下載整套 JDK,看起來也不怎麼划算。所以就想說直接把 jarsigner.exe 從 JDK 內截取出來。

第一步很簡單就是直接 copy jarsigner.exe 出來,執行結果發現少了一個 jli.dll。在同一個目錄內發現 jli.dll,拷貝再執行一次,結果出現 Could not find the main class: sun.security.tools.JarSigner.。

台南小新 發表在 痞客邦 PIXNET 留言(1) 人氣()