Сочетание арабского и английского языков вызывает проблемы в JTextArea (Java)

У меня есть JTextArea, который отображает HTML арабской веб-страницы. По сути, это смесь английского и арабского языков. В JTextArea, когда для столбцов установлено значение 30, определенный текст просто исчезает вместо правильного переноса. Странно то, что если я скопирую невидимый текст и вставлю его в Блокнот, то я увижу его в Блокноте. Если я изменю количество столбцов на 40, все будет отображаться нормально. Есть идеи?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
2 210
2

Ответы 2

Исчезает 30-й символ? Возможно, из-за сценария JTextArea не может правильно отображать арабские символы. Таким образом, он правильно считает символы, но не понимает, что они занимают больше места. Поддержка таких шрифтов невелика, поэтому вы можете написать собственный рендерер для JTextArea, чтобы справиться с этим (чтобы вы могли вручную учесть надлежащий объем места, необходимый для каждого символа в арабском языке, и соответствующим образом настроить перенос строк).

Смотрите этот снимок экрана с проблемой:

http://i.stack.imgur.com/lErjB.jpg

Эли, спасибо за ответ. Не уверен, что я правильно объяснил проблему. Слева на скриншоте - JTextArea. Справа - выбор из JTextArea, вставленный в Блокнот. Теперь в этом больше смысла?

Вы все еще сталкиваетесь с этой проблемой даже без арабского языка в тексте, или это только когда вы добавляете арабский язык? Попробуйте вставить текст из блокнота в текстовую область с арабским языком и без него, и дайте мне знать, что произойдет.

Elie 25.11.2008 18:48

Да, хорошая идея. Кажется, проблема не в арабском. Это как-то связано с вкладками. Все исчезающие строки начинаются с 5 вкладок. Если я удалю одну вкладку так, чтобы они начинались с 4 вкладок, они отображаются в JTextArea нормально.

Chris Jester-Young 25.11.2008 19:04

какой у вас интервал для вкладок? Он установлен на 6?

Elie 25.11.2008 19:22

по умолчанию установлено значение 8, но его изменение не помогает. Я видел, как другие люди тоже сообщали об этой проблеме (bugs.sun.com/bugdatabase/…). Мое решение - просто заменить вкладки с пробелами. Спасибо за помощь мне эли

Chris Jester-Young 25.11.2008 19:30

Другие вопросы по теме