В настоящее время я работаю над java-проектом, который использует арабский язык, мне было трудно писать на арабском языке, как показано на изображении:
Я добавил метод reverse(), он работал хорошо, но буквы не привязаны друг к другу, они отдельные.
StringBuilder input = new StringBuilder();
input.append(jTextField2.getText());
input = input.reverse();
jTextField1.setText(input.toString());
Я использую сайт для переворачивания текста, это тоже не сработало.
jLabel все заработало.Другой метод, который я использую, но не работал:
Попробуйте Ориентацию jTextField1.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
Измените кодировку IDE на URT-8 (я использую Netbeans-JDK8).
Может ли кто-нибудь помочь мне, как правильно писать и печатать арабский язык в java?
@ Евгений редактирую ответ
Возможный дубликат Как установить ориентацию JTextArea справа налево (внутри JOptionPane)
Вы пробовали установить локаль? jTextField1.getInputContext (). selectInputMethod (новый языковой стандарт ("ar", "LB"));
Тем не менее, настоящий минимальный воспроизводимый пример был бы полезен. Например: размещение небольшого класса с реальным основным методом, который устанавливает этот пользовательский интерфейс, и чтобы люди могли просто запустить себя, чтобы увидеть вашу проблему.
Пожалуйста, добавьте к своему вопросу точную последовательность арабских символов (как текст, а не только как изображение), которую вы обнаружите, не может быть должным образом перевернута.
@dirbacke да, тоже не сработало.
@VGR Я не знаю, хорошо ли я вас понимаю, но вот что я хочу получить: (مرحبا بالعالم)
Это перевернутый текст? Если да, то какой исходный текст вы вводите перед тем, как перевернуть его?




Пожалуйста, обратитесь к этому вопросу - Принудительный порядок RTL в JTextArea
Вот предложение начать строку с символа \ u202e, чтобы текст был RTL.
Также я думаю, что это не лучший подход к перевернутой строке, так как это нехорошо для пользователя, когда пользователь выполняет «копирование и вставку», поскольку он будет копировать перевернутую строку ...
Я добавил код jTextField1.getDocument().putProperty( TextAttribute.RUN_DIRECTION, TextAttribute.RUN_DIRECTION_RTL);, но не работал.
Строка, полностью состоящая из символов арабского блока, должна отображаться с правильным RTL-представлением без каких-либо символов управления направлением. Если это не так, скорее всего, проблема связана с конфигурацией операционной системы, а не с кодом Java. Переворачивать струну - ужасная идея. Попытка рендеринга визуального порядка приведет к путанице.
Я добавил код jTextField1.getDocument().putProperty( TextAttribute.RUN_DIRECTION, TextAttribute.RUN_DIRECTION_RTL);, но не работал.
когда вы говорите обратное? что именно ты имеешь ввиду?