|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Этот раздел обсуждает, как работать с двунаправленным текстом с JTextComponent class. Двунаправленный текст является текстом, который содержит текст, который работает в двух направлениях, слева направо и справа налево. Примером двунаправленного текста является арабский текст (который работает справа налево), которые содержат числа (которые работают слева направо). Более трудно вывести на экран и управлять двунаправленным текстом; однако дескрипторы эти проблемы для Вас.
Следующие темы затрагиваются:
Для получения дополнительной информации об этих проблемах, или если Вы хотите больше управления в обработке этих проблем, см.
Выборка BidiTextComponentDemo.java, который основан на TextComponentDemo.java, двунаправленный текст дисплеев в a JTextPane объект. В большинстве случаев платформа Java может определить направленность двунаправленного текста Unicode:

Можно определить направление выполнения объект a объект. Например, следующий оператор определяет что текст в объект 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 объект справа налево также.
См., что раздел Устанавливает Компонентную Ориентацию для получения дополнительной информации.
В доступном для редактирования тексте каре используется, чтобы графически представить текущую точку вставки, позицию в тексте, где новые символы будут вставлены. В
По умолчанию, a JTextComponent объект создает контурную карту (типа ) это совместно используется всеми экземпляры как контурная карта значения по умолчанию. Контурная карта позволяет приложению связывать нажатия клавиш с действием. Контурная карта значения по умолчанию (для объекты, которые поддерживают перемещение каре) включает привязку между перемещением каре вперед и назад с левыми и правыми клавишами со стрелками, который поддерживает перемещение каре через двунаправленный текст.
Часто, расположение в пространстве устройства должно быть преобразовано в текстовое смещение. Например, когда пользователь щелкает мышью по выбираемому тексту, расположение мыши преобразовывается в текстовое смещение и используется в качестве одного конца диапазона выбора. Логически, это - инверсия расположения каре.
Можно присоединить слушателя каре экземпляра . Слушатель каре позволяет Вам обработать события каре, которые происходят, когда каре перемещается или когда выбор в текстовом компоненте изменяется. Вы присоединяете слушателя каре с метод. См.
Выбранный диапазон символов представляется графически областью выделения, областью, в которой глифы выводятся на экран с инвертированным видеоизображением или против различного цвета фона.
JTextComponent объекты реализуют логическое выделение. Это означает, что выбранные символы всегда непрерывны в текстовой модели, и области выделения позволяют быть несмежной. Следующее является примером логического выделения:

Менеджеры по расположению Swing понимают, как локаль влияет на UI; не необходимо создать новое расположение для каждой локали. Например, в локали, куда текст течет справа налево, менеджер по расположению расположит компоненты в той же самой ориентации.
Выборка
Следующее использование локаль en-US:

Следующее использование локаль SA площади:

Отметьте, что компоненты были размечены в том же самом направлении как соответствующая локаль: слева направо для en-US и справа налево для SA площади. InternationalizedMortgageCalculator.java выборка вызывает методы applyComponentOrientation и определить направление его компонентов локалью:
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));
// ...
}
Выборка