溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何解決Swing和AWT常見問題

發(fā)布時(shí)間:2021-12-01 09:51:09 來源:億速云 閱讀:217 作者:小新 欄目:編程語言

小編給大家分享一下如何解決Swing和AWT常見問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

我編寫的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 <JAVA_HOME>/lib/fonts或者cd <JAVA_HOME>/jre/lib/fonts,mkdir fallback (fallback代表存放后備語言的文件夾)其中<JAVA_HOME>是你安裝jdk/jre的路徑,我的是/usr/lib /jdk1.5。復(fù)制或者鏈接一個(gè)中文字體至其下:ln -s /usr/share/fonts/truetype/simsun.ttf /usr/lib/jdk1.5/jre/lib/fonts/fallback/simsun.ttf

第三步:
有了上面的步驟之后,就可以在代碼中編碼實(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)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI