小編給大家分享一下如何解決Swing和AWT常見問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
從事遂寧聯(lián)通機(jī)房,服務(wù)器租用,云主機(jī),雅安服務(wù)器托管,域名注冊,CDN,網(wǎng)絡(luò)代維等服務(wù)。
我編寫的JAVA程序中的Swing和AWT組件中的中文顯示都是方框,而標(biāo)題卻能正常顯示中文,且使用 System.out.println("中文字符串")能正常顯示中文。
解決思路:
可能是JRE的中文字庫不支持引起,所以添加一個(gè)可以支持的中文字庫解決辦法:
***步:
下載中文字庫,我使用的是simsun.ttc,可以直接在Windows(我用的是XP的系統(tǒng))中找到,入徑為C:\WINDOWS\Fonts 下的simsun.ttc也可以在網(wǎng)站上下載推薦天網(wǎng)網(wǎng)站:http://file.tianwang.com/cgi-bin/search?word=simsun.ttc
第二步:
將中文字庫 simsun.ttc放入Jre的字庫中,操作如下:cd
第三步:
有了上面的步驟之后,就可以在代碼中編碼實(shí)現(xiàn)顯示中文了,操作如下:在main 函數(shù)中的開頭處添加如下代碼:
UIManager.put("Label.font",f); UIManager.put("Label.foreground",Color.black); UIManager.put("Button.font",f); UIManager.put("Menu.font",f); UIManager.put("MenuItem.font",f); UIManager.put("List.font",f); UIManager.put("CheckBox.font",f); UIManager.put("RadioButton.font",f); UIManager.put("ComboBox.font",f); UIManager.put("TextArea.font",f); UIManager.put("EditorPane.font",f); UIManager.put("ScrollPane.font",f); UIManager.put("ToolTip.font",f); UIManager.put("TextField.font",f); UIManager.put("TableHeader.font",f);
以上代碼代表了在整個(gè)程序中的相關(guān)組件都使用定義好"f"字體,從而就不會存在中文亂碼了,也省卻了對所有組件單獨(dú)設(shè)置的麻煩。
我默認(rèn)的窗口管理器一直都是用的Beryl,沒出過什么問題。不管是開發(fā)(Java)還是一般的應(yīng)用。開發(fā)的時(shí)候如果做到Java的桌面應(yīng)用我一般是用SWT,Swing和AWT好久沒用,今天用了,突然發(fā)現(xiàn)一個(gè)問題:
開啟Beryl做Swing和AWT的時(shí)候控件不能顯示,也就是畫不出來,郁悶。到Java開發(fā)社區(qū)看了下,說這是JDK6的一個(gè)Bug-。-!不過,還好,有解決方法,就是編輯一下/etc/environment:
sudo gedit /etc/environment
加入這句:
AWT_TOOLKIT="MToolkit"
好了,問題暫時(shí)可以解決o(∩_∩)o...哈哈
以上是“如何解決Swing和AWT常見問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!