文本区域右侧的Java显示文本

时间:2012-03-11 21:38:14

标签: java swing text orientation right-to-left

我对ComponentOrientation.RIGHT_TO_LEFT的问题是“/”或“!”等字符要么 '。'显示在左侧。

我只需要从右到左绘制文字,但是使用标准的,西方的,英文的从左到右的符号表示文本字符。

这是否可以在不手动渲染文本的情况下实现?

2 个答案:

答案 0 :(得分:3)

我无法解决您的问题,请您使用我左侧显示的SSCCE

enter image description here

来自代码

import java.awt.ComponentOrientation;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.UIManager;

public class RightToLeft {

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

            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (Exception e) {
                    e.printStackTrace();
                }
                JTextArea text = new JTextArea(10, 5);
                text.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
                text.setText("one/\n "
                        + "!two\n"
                        + ".three\n"
                        + "/four\n"
                        + "five!\n"
                        + "six.\n"
                        + "seven\n"
                        + "eight\n");
                JScrollPane pane = new JScrollPane(text);
                JFrame.setDefaultLookAndFeelDecorated(true);
                JFrame frame = new JFrame("العنوان بالعربي");
                frame.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
                frame.add(pane);
                frame.pack();
                frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                frame.setVisible(true);
            }
        });
    }
}

答案 1 :(得分:0)

尝试为setAlignmentX(Component.RIGHT_ALIGNMENT)调用文本字段。