當我開始使用JDK6進行編程時,文本組件在AWT和Swing中都沒有問題。AWT格式錯誤的波斯語字符
但是對於標籤或標題AWT組件我確實有問題。我無法在AWT組件上顯示波斯語字符(在Swing中,我將它們鍵入到源代碼中)。
這裏是我的示例代碼:
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.util.Properties;
public class EmptyFarsiCharsOnAWT extends JFrame{
public EmptyFarsiCharsOnAWT() {
super("مثال");
setDefaultCloseOperation(3);
setVisible(rootPaneCheckingEnabled);
}
public static void main(String[] args) throws AWTException, IOException {
JFrame jFrame = new EmptyFarsiCharsOnAWT();
MenuItem show ;
// approach 1 = HardCoding :
/*
show = new MenuItem("\u0646\u0645\u0627\u06cc\u0634");
*
*/
// approach 2 = using simple utf-8 saved text file :
/*
BufferedReader in = new BufferedReader(new FileReader("farsiLabels.txt"));
String showLabel = in.readLine();
in.close();
show = new MenuItem(showLabel);
*
*/
// approach 3 = using properties file :
FileReader in = new FileReader("farsiLabels.properties");
Properties farsiLabels = new Properties();
farsiLabels.load(in);
show = new MenuItem(farsiLabels.getProperty("tray.show"));
PopupMenu popUp = new PopupMenu();
popUp.add(show);
// creating Tray object
Image iconIamge = Toolkit.getDefaultToolkit().getImage("greenIcon.png");
TrayIcon trayIcon = new TrayIcon(iconIamge, null, popUp);
SystemTray tray = SystemTray.getSystemTray();
tray.add(trayIcon);
jFrame.setIconImage(iconIamge);
}
}
這三種方法都工作時,與IDE中運行,但是當我做含有此一等級JAR(通過的NetBeans>項目的手段>清潔&構建),我沒有看到預期的字符(它顯示空/空白方塊)!
注: 看來我不能附加任何東西,所以文本文件的內容是這樣的:نمایش
和屬性文件的內容:
#Sun May 02 09:45:10 IRDT 2010
tray.show=نمایش
而且我覺得我有讓你知道我前不久在SDN和「Java牧場」論壇和其他本地論壇上發佈了這個問題,但我還在等待...
順便說一下,我使用的是最新版本的Netbeans IDE .. 。
我會很感激,如果任何人有一個解決方案,這些該死的AWT組件從未渲染任何波斯語角色對我來說...
親愛的垃圾桶,我一定很想觸發那個標誌,但是好像是因爲我在這裏是一個tyro,我不能,但是隻要我有足夠的聲譽來做到這一點,我會盡快做到這一點(我不熟悉這個網站非常...) 謝謝 – jlover2010 2010-05-30 20:11:08
有趣。我不能對你的答案投票,不知何故,系統認爲這是我的,也許是由於稱呼。 – trashgod 2010-05-30 21:21:07
是的,就是這樣。我已經投了你的問題和答案。 – trashgod 2010-05-30 21:23:17