在JTextPane中显示urdu字符

时间:2011-11-29 19:59:08

标签: java swing internationalization jtextpane

如何在Urdu中显示单个JTextPane字符?我已将英文字符翻译成乌尔都语字符。但我找不到任何方法将这些字符正确显示到我的文本组件中。

我的目标是:

  1. 按下键盘上的按键。
  2. 将该密钥转换为等效的Urdu字符。
  3. 在我的文字组件(JTextPane)中显示。
  4. 我已经完成了第1步和第2步,但无法完成最后一步。

1 个答案:

答案 0 :(得分:5)

3- display it in my text component that is JTextPane

enter image description here

source Wikipedia

项目以纯UTF-8编码

import javax.swing.*;
import java.awt.*;

public class Example {

    private JFrame frameA = new JFrame("Example");
    private JTextArea textA = new JTextArea(10, 5);

    public Example() {
        frameA.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        textA.setForeground(new Color(255, 150, 150));
        textA.setText("Peace be upon you (Hello) - السلام علیکم " + "\n");
        textA.append("Peace be upon you too (Hello) - و علیکم السلام " + "\n");
        textA.append("I am happy to meet you - آپ سے مل کر خوشی ہوئی" + "\n");
        textA.append("Do you speak English? - کیا آپ انگریزی بولتے ہیں؟" + "\n");

        frameA.add(textA);
        frameA.pack();
        frameA.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                Example exam = new Example();
            }
        });
    }
} 

编辑:

感谢Stas

错误地把它放到了JTextArea

添加了JTextPane示例

import javax.swing.*;
import java.awt.*;

public class Example {

    private JFrame frameA = new JFrame("Example");
    private JTextPane textP = new JTextPane();

    public Example() {
        frameA.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        textP.setForeground(new Color(255, 150, 150));
        textP.setText("Peace be upon you (Hello) - السلام علیکم " + "\n"
        +"Peace be upon you too (Hello) - و علیکم السلام " + "\n"
        +"I am happy to meet you - آپ سے مل کر خوشی ہوئی" + "\n"
        +"Do you speak English? - کیا آپ انگریزی بولتے ہیں؟" + "\n");

        frameA.add(textP);
        frameA.pack();
        frameA.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                Example exam = new Example();
            }
        });
    }
}