Java Swing: пользователь набирает текст — вставляет его в середину предложения. Проблема в том, что курсор перемещается JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java Swing: пользователь набирает текст — вставляет его в середину предложения. Проблема в том, что курсор перемещается

Сообщение Anonymous »

Я знаю, что Java Swing устарел, но я все еще использую его. В основном я использую JTextArea, и он отлично работает, если пользователи хотят вставить текст в середину существующего текста. Но в JTextArea нет межстрочного интервала, а в иврите с пунктацией пунктация строк выше и ниже перекрывается. Поэтому вместо этого я использовал JTextPane и смог изменить межстрочный интервал. НО если пользователь хочет вставить текст в существующий текст, курсор после КАЖДОЙ буквы переходит в конец текста. Это делает вставку текста утомительной.
Я много гуглил, но ничего не нашел по этой теме.
Вот мой код:< /p>
hebrewField = new JTextPane();
hebrewField.setFont(ApplicationFonts.getHebrewFont(30F));
hebrewField.setDocument(new NikudStyledDocument(true));
hebrewField.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
hebrewField.setMinimumSize(new Dimension(Settings.getKeyboardWidth() - 30,
(heightTotal - heightBorderTitel)));
hebrewField.setMaximumSize(
new Dimension(this.widthTotal, (heightTotal - heightBorderTitel)));
hebrewField.setBorder(
BorderFactory.createTitledBorder(translator.realisticTranslate(
Translation.HEBRAEISCH__EINFACHE_SCHREIBWEISE)));
changeLineSpacing(hebrewField);

и
private void changeLineSpacing(JTextPane pane) {
SimpleAttributeSet set = new SimpleAttributeSet(pane.getParagraphAttributes());
StyleConstants.setLineSpacing(set, 0.5F);
pane.setParagraphAttributes(set, true);
}

Кто-нибудь еще помнит, как это сделать в Java Swing? Любые идеи приветствуются. Спасибо за вашу доброту.
Изображение

ОБНОВЛЕНИЕ
Здесь текст задан. Думаю, мне нужно установить позицию курсора после вставки текста.
public void mousePressed(MouseEvent e)
{
DataButton jButton = (DataButton) e.getComponent();
String caption = jButton.getData();

JTextComponent focusElement = findFocusElement();
if (focusElement != null)
{
int position = focusElement.getCaretPosition();
String text = focusElement.getText();
String before = text.substring(0, position);
String after = text.substring(position);
focusElement.setText(before + caption + after);
focusElement.requestFocus();
}
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... ce-the-pro
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»