天天看點

重拾JAVA之WinForm實戰之(四)

今天這篇文章主要實作輕按兩下修改的功能,話說這java的winform程式實在是令人崩潰,各種問題搞得我神志不清。

重拾JAVA之WinForm實戰之(四)
重拾JAVA之WinForm實戰之(四)

那麼這個功能就是輕按兩下Jtable中的某一行,然後彈出修改界面,修改完之後資料重新整理到Jtable中。同時,這個修改界面還支援頁碼變化,即可以點選上一頁,下一頁等按鈕抓取Jtable中對應行的資料。

先看輕按兩下事件,在C#中DataGridView有輕按兩下事件,可是JTable沒有。怎麼辦呢?大家不知道看沒看過我的另一篇文章,Silverlight MVVM切近實戰主界面的輕按兩下實作,今天java這個輕按兩下和那個類似,原理就是監控兩次單擊在指定的時間段内完成的話算輕按兩下。

在Jtable單擊的時候調用ShowModifyForm()

在調用彈出界的時候,首先定義一個timer,它的任務是200ms執行一次。每一次時間間隔之後都會将變量isTimerRuning設定為false。當單擊第一次的時候,将其設定為true,當單擊第二次的時候判斷如果還是true,說明這兩次單擊是在200ms内完成的,進而模拟了輕按兩下事件。

OK,模拟玩輕按兩下事件之後,就是打開修改界面了。在這裡我直接把Jtable和主視窗都傳過去了。其實可以隻傳個主視窗就可以的,至于為什麼要傳,一會說。

好了,界面打開之後,如下

重拾JAVA之WinForm實戰之(四)

我們發現比上篇文章多出了備注這個字段,是以加了個字段

但是這個列并不用來顯示在jtable中,是以隐藏它

OK,我們可以通過上面的翻頁來加載首頁面jtable中的資料。看一下代碼,首先是初始化

初始化的時候将傳過來的jtable和jf附上值。然後調用Init()。再說這個Init之前,我想說的是,java 中為什麼沒有提供有參構造函數調用無參構造函數的方案。在C#中是通過有參:this()來實作的。好了,我們看一下Init

這一堆的代碼就是用來實作初始化資料的,先擷取父頁面jtable輕按兩下的行的行号。将值取出來放在修改界面上。然後重新整理分頁按鈕狀态,并給分頁按鈕注冊統一事件處理程式。實作分頁顯示。最後修改資料,儲存

那麼最後在傳遞的這個this就是在修改頁面關閉以後,重新整理jtable的。

好了洗洗睡吧,我靠,才中午,是吃飯才對,吃晚飯,話說這java一次編譯,到處運作,在linux上來一下。先把生成的jar包導出到我的windows7的FTP服務檔案夾中。在linux檢視

重拾JAVA之WinForm實戰之(四)

好的,将GRLZ.JAR和JBDC4驅動拷貝至/opt/GRLZ/下

重拾JAVA之WinForm實戰之(四)

設定JDBC的環境變量

重拾JAVA之WinForm實戰之(四)

OK,現在運作起來,打開終端,輸入如下指令,界面打開

重拾JAVA之WinForm實戰之(四)

可是我的密碼怎麼也輸不進去

重拾JAVA之WinForm實戰之(四)

于是乎,我直接點選登入按鈕,彈出提示

重拾JAVA之WinForm實戰之(四)

我靠自從彈出這個提示後,密碼可以輸入了,我靠,這個時候我最想問那些愛問别人原理的面試官,這是什麼原理,為什麼會這樣。

重拾JAVA之WinForm實戰之(四)

直接報找不到JDBC驅動,老夫郁悶了,搞了大半天還沒搞好,放棄吧,哪位高人如果進來了,給我指點一下。