ComponentOrientation.RIGHT_TO_LEFT
の問題は、 '/'や '!'などの文字です。または '。'が左側に示されています。Javaディスプレイのテキストをテキスト領域の右側に表示
私はちょうど右から左に描画されるテキストを必要とするが、標準を使用して、西部、英語がテキスト文字のために右の表記に左。
テキストを手動でレンダリングしなくても可能ですか?
ComponentOrientation.RIGHT_TO_LEFT
の問題は、 '/'や '!'などの文字です。または '。'が左側に示されています。Javaディスプレイのテキストをテキスト領域の右側に表示
私はちょうど右から左に描画されるテキストを必要とするが、標準を使用して、西部、英語がテキスト文字のために右の表記に左。
テキストを手動でレンダリングしなくても可能ですか?
私はあなたが左側に示すために私のSSCCEを使用してくださいすることができ、あなたの問題が発生することはできません。
コード
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);
}
});
}
}
からテキストフィールドのsetAlignmentX(Component.RIGHT_ALIGNMENT)
を呼び出してみてください。
OPは、右揃えで表示され、左から右へのフローで表示されるように、「one /」のようなテキストを必要とします。 –
JTextField.setHorizontalAlignment(JTextField.RIGHT)を使用して動作させました。 – bgroenks