Forum Stats

  • 3,875,872 Users
  • 2,266,977 Discussions
  • 7,912,361 Comments

Discussions

I have boxes instead of Farsi characters as the text of MenuItem label...

843807
843807 Member Posts: 46,582
edited May 21, 2010 12:07PM in Abstract Window Toolkit (AWT)
Hi
As i started programming by jdk6, i had no problem in text components neither in awt nor in swing.
But for labels or titles of AWT components, yes :
I couldn't have Farsi characters displayable on AWTs just as simple as Swing by typing them into the source code.
lets check this SSCCE :
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 \u0645\u062a\u0627");
         *
         */

        // 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);
        } 
    }  
Yes, i know each of three approaches in source code does right when you may test it from IDE , but if you make a JAR contains just this class (and its resources) by means of NetBeans > project > clean&build ,you won't see the expected characters and will just get EMPTY/BLANK SQUARES !
Unfortunately, opposed to other situations i encountered before, here there is no way to avoid using awt and make use of Swing in this case.
And this was just an SSCCE i made to show the problem and my recent (also first ) application suffers from this subject.

Unfortunately it seems i can not attach anything to my post!
the content of text file is just this one line:
نمایش متا
and
The contents of Properties file is this :
 #Sun May 02 09:45:10 IRDT 2010   
tray.show=نمایش متا
for instance.
the icon image i don't think will differ to the issue.

i am using latest version of Netbeans IDE.

Thank you very much in advance.

Comments

This discussion has been closed.