Spec-Zone .ru
спецификации, руководства, описания, API
|
Этот раздел обсуждает, как работать с двунаправленным текстом с JTextComponent
class. Двунаправленный текст является текстом, который содержит текст, который работает в двух направлениях, слева направо и справа налево. Примером двунаправленного текста является арабский текст (который работает справа налево), которые содержат числа (которые работают слева направо). Более трудно вывести на экран и управлять двунаправленным текстом; однако JTextComponent
Следующие темы затрагиваются:
Для получения дополнительной информации об этих проблемах, или если Вы хотите больше управления в обработке этих проблем, см.
Выборка BidiTextComponentDemo.java
, который основан на TextComponentDemo.java
, двунаправленный текст дисплеев в a JTextPane
объект. В большинстве случаев платформа Java может определить направленность двунаправленного текста Unicode:
Можно определить направление выполнения Document
JTextComponent
JTextPane
textPane
выполнения справа налево:
textPane.getDocument().putProperty( TextAttribute.RUN_DIRECTION, TextAttribute.RUN_DIRECTION_RTL);
Альтернативно, можно определить компонентную ориентацию определенного Swing, компонентно-ориентированного на локали. Например, следующие операторы определяют что компонентная ориентация объекта textPane
основано на локали SA площади:
Locale arabicSaudiArabia = new Locale.Builder().setLanguage("ar").setRegion("SA").build(); textPane.setComponentOrientation( ComponentOrientation.getOrientation(arabicSaudiArabia));
Поскольку направление выполнения арабского языка справа налево, направление выполнения текста, содержавшегося в textPane
объект справа налево также.
См., что раздел Устанавливает Компонентную Ориентацию для получения дополнительной информации.
В доступном для редактирования тексте каре используется, чтобы графически представить текущую точку вставки, позицию в тексте, где новые символы будут вставлены. В BidiTextComponentDemo.java
выборка, каре содержит небольшой треугольник, который указывает на направление, где вставленный символ будет выведен на экран.
По умолчанию, a JTextComponent
объект создает контурную карту (типа Keymap
JTextComponent
JTextComponent
Часто, расположение в пространстве устройства должно быть преобразовано в текстовое смещение. Например, когда пользователь щелкает мышью по выбираемому тексту, расположение мыши преобразовывается в текстовое смещение и используется в качестве одного конца диапазона выбора. Логически, это - инверсия расположения каре.
Можно присоединить слушателя каре экземпляра JTextComponent
addCaretListener
Выбранный диапазон символов представляется графически областью выделения, областью, в которой глифы выводятся на экран с инвертированным видеоизображением или против различного цвета фона.
JTextComponent
объекты реализуют логическое выделение. Это означает, что выбранные символы всегда непрерывны в текстовой модели, и области выделения позволяют быть несмежной. Следующее является примером логического выделения:
Менеджеры по расположению Swing понимают, как локаль влияет на UI; не необходимо создать новое расположение для каждой локали. Например, в локали, куда текст течет справа налево, менеджер по расположению расположит компоненты в той же самой ориентации.
Выборка InternationalizedMortgageCalculator.java
был локализован для английского языка, Соединенные Штаты; английский язык, Соединенное Королевство; французский язык, Франция; французский язык, Канада; и арабский язык, Саудовская Аравия.
Следующее использование локаль en-US:
Следующее использование локаль SA площади:
Отметьте, что компоненты были размечены в том же самом направлении как соответствующая локаль: слева направо для en-US и справа налево для SA площади. InternationalizedMortgageCalculator.java
выборка вызывает методы applyComponentOrientation
и getOrientation
private static JFrame frame; // ... private static void createAndShowGUI(Locale currentLocale) { // Create and set up the window. // ... // Add contents to the window. // ... frame.applyComponentOrientation( ComponentOrientation.getOrientation(currentLocale)); // ... }
Выборка InternationalizedMortgageCalculator.java
требует следующих файлов ресурсов: