У меня есть JTextArea, который отображает HTML арабской веб-страницы. Так что это, по сути, смесь английского и арабского языков. В JTextArea со столбцами, установленными на 30, определенный текст просто исчезает вместо правильного переноса. Странно то, что если я скопирую невидимый текст и вставлю его в Блокнот, то я смогу увидеть его в Блокноте. Если я изменю количество столбцов на 40, все будет отображаться нормально. Есть идеи?
Смешение арабского и английского языков вызывает проблемы в JTextArea (Java)
Ответы (2)
Посмотрите на этот скриншот проблемы:
Эли, спасибо за ответ. Хотя не уверен, что правильно объяснил задачу. Слева на скриншоте находится JTextArea. Справа — выделение из JTextArea, вставленное в Блокнот. Теперь это имеет больше смысла?
person
Community
schedule
25.11.2008
Вы по-прежнему сталкиваетесь с этой проблемой даже без арабского языка в тексте, или это происходит только тогда, когда вы добавляете арабский язык? Попробуйте вставить текст из блокнота в текстовую область с арабским языком и без него и дайте мне знать, что произойдет.
- person Elie; 25.11.2008
Да, хорошая идея. Кажется, что проблема здесь не в арабском языке. Это как-то связано с вкладками. Все исчезающие строки начинаются с 5 табуляции. Если я удалю одну вкладку, чтобы они начинались с 4 вкладок, то в JTextArea они отображаются нормально.
- person ; 25.11.2008
какое у вас расстояние между вкладками? Он установлен на 6?
- person Elie; 25.11.2008
установлено значение по умолчанию 8, но его изменение не помогает. Я видел, как об этой проблеме сообщали и другие люди (bugs.sun .com/bugdatabase/) Мой обходной путь — просто заменить вкладки пробелами. Спасибо за помощь, Эли
- person ; 25.11.2008
Это 30-й символ, который исчезает? Возможно, из-за сценария JTextArea не может правильно отображать арабские символы. Так что он правильно считает символы, но не понимает, что они занимают больше места. Поддержка таких шрифтов не велика, поэтому вы можете написать собственный рендерер для вашего JTextArea, чтобы справиться с этим (чтобы вы могли вручную учитывать надлежащее количество места, необходимое для каждого символа на арабском языке, и соответствующим образом настроить перенос строки).
person
Elie
schedule
25.11.2008