正文之前
今天早上起來,因?yàn)檫€要在宿舍這邊搞畢業(yè)信息確認(rèn)舔稀,所以沒辦法乳丰,我就只能在宿舍里面做一下Java 的GUI的優(yōu)化了!
很幸運(yùn)的产园,思索一番之后,我發(fā)現(xiàn)了問題所在夜郁,并且很快的就解決了什燕。就在我想要繼續(xù)水兩面畢業(yè)設(shè)計(jì)學(xué)生日志的時(shí)候,卻悲哀的發(fā)現(xiàn)我的日志本昨天就上交去中期檢查去了竞端!嗚呼哀哉屎即!簡直悲傷!所以只能先寫個(gè)電子檔事富,等紙質(zhì)檔發(fā)下來再補(bǔ)上了技俐!
正文
在前天完善Java GUI界面的時(shí)候,因?yàn)闀r(shí)間匆忙统台,所以只能匆匆趕出來一個(gè)示例樣板雕擂,基本上只能實(shí)現(xiàn)決策樹最頂端的那幾個(gè)Line的展示。
而我昨天有個(gè)想法井赌,那就是能不能在MouseAndKeyEvent(GUI界面的最終類,名字是隨便起的)這個(gè)類里面加一個(gè)標(biāo)志數(shù)贵扰,即line這個(gè)變量來確定當(dāng)前是要展示出來多少行族展,然后設(shè)定一個(gè)靜態(tài)方法,可以在main主函數(shù)里面直接讀取MouseAndKeyEvent這個(gè)類里面的靜態(tài)變量line拔鹰,然后根據(jù)這個(gè)line值是否變化判斷是否應(yīng)該繼續(xù)傳值到MouseAndKeyEvent這個(gè)類的實(shí)例化對象里面仪缸。這里邊還有個(gè)靜態(tài)方法專門干這事,其實(shí)把這個(gè)靜態(tài)方法定義到哪兒都可以列肢。不過不管了恰画,能用就行宾茂。
結(jié)果就是,失敗了拴还!理所當(dāng)然的失敗了跨晴!
根本沒法傳值,主函數(shù)也一直沒法結(jié)束片林!我真是苦惱岸伺琛!
雖然沒想到到底是為了啥费封,但是在網(wǎng)上瀏覽了一番焕妙,我卻想起來!Java GUI的界面都是基于線程存在的弓摘,如果主函數(shù)要對線程做些什么焚鹊,基本都是提交一個(gè)線程進(jìn)去。所以我這兒估計(jì)是資源沖突韧献?末患??主函數(shù)遲遲不結(jié)束锤窑,線程那邊有動(dòng)靜但是還不如沒有璧针。
然后我就直接在main里面把整個(gè)決策樹讀取了出來,存儲到一個(gè)數(shù)組里面渊啰。然后在MouseAndKeyEvent里面也開了一個(gè)數(shù)組用于存儲著1500左右的決策樹輸出探橱。然后main順利結(jié)束,其他的都交給了線程虽抄。美滋滋~然后我的就可以做到按按鈕就可以刷新了,其實(shí)也是很大的進(jìn)步了独柑!
后來迈窟,我更是對按鈕2,也就是Next按鈕進(jìn)行了一個(gè)鍵盤監(jiān)聽忌栅,只要當(dāng)前聚焦在Next按鈕上车酣,那么就可以用Enter按下直接取代按按鈕。豈不是美滋滋索绪?不然140行湖员,按140下簡直想死!
but2.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e){
System.out.println(KeyEvent.getKeyText(e.getKeyCode())+" ******>>>> "+e.getKeyCode());
if(e.getKeyCode()==KeyEvent.VK_ENTER){
System.out.println("Put Down the Enter to Change the Data!");
UpdateDisplay();
}
}
});
然后我又遇到了一個(gè)問題瑞驱。很嚴(yán)重D锼ぁ!唤反!
那就是我的Jlabel無法左對齊凳寺。我在網(wǎng)上找了很多關(guān)于Jlabel左對齊的方案鸭津,大部分都是在初始化的時(shí)候給定的內(nèi)容。我也照做了肠缨,甚至為此我還有兩種方案:一個(gè)JLabel.LEFT逆趋,一個(gè)是SwingConstants.LEFT這個(gè),也就是基于下圖的方法:
但是都失敗了晒奕,還是沒什么卵用闻书!
甚至我都到了 一個(gè)可能潛藏著巨多大神的地方去咨詢。
可惜脑慧,還沒等大神回復(fù)我魄眉。。我就突然想到漾橙,我的貌似是三層結(jié)構(gòu)啊杆融。
具體的結(jié)構(gòu)我隨便畫個(gè)圖!
布局Layout大概就是圖中這樣的了霜运,既然JLabel無論如何都沒啥效果脾歇,那么是不是JPanel出問題了呢?淘捡?抱著這個(gè)想法藕各,我搜了搜~還真有答案!
然后我照做了激况!美滋滋!膘魄!真的可以乌逐!給你們看看效果~
哇靠,這太靠左邊了创葡!不過沒毛舱闾摺!只要能控制灿渴,什么是做不到的洛波?填空格我都給你填滿咯!
然后我就給每一個(gè)輸出加了這么一個(gè)Space
public static String Space = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
再來看效果骚露!~~~
現(xiàn)在不是美滋滋蹬挤??棘幸?簡直可以說是6666了好嗎焰扳?OK!今天到這兒,趕緊寫幾個(gè)命令好讓我的GUI逼格高起來蓝翰!寫完就去健身房光绕,然后吃飯,晚上干啥就不清楚了畜份!
正文之后
既然要做文字識別诞帐,那就不得不提我很是忌諱的一個(gè)東西了,字符串的處理爆雹。停蕉。CCF考過,簡直想死钙态!而且還是那種很簡單的我都搞不定慧起,不過我可以規(guī)則弄簡單點(diǎn),沒那么多彎彎道道不就OK册倒?r炯贰!嘿嘿驻子!