Java JEditorPane - PullRequest
       16

Java JEditorPane

0 голосов
/ 26 апреля 2010

ChatGUI

Я использую 2 JEditorPane для передачи текста из одного в другой.

после передачи данных я делаю следующее:

JEditorPane.setText(null);

JEditorPane.setCaretPosition(0);

но, как видно из прикрепленного изображения, действие return заставляет подсказку отображаться на строку вниз. как я могу это исправить?

РЕДАКТИРОВАТЬ: вам кажется правильным следующее? если это так, то почему карет не позиционирует себя на позиции 0 символа?

    private class MyKeyAdapter extends KeyAdapter {

    @Override
    public void keyPressed(KeyEvent ke) {

        int kc = ke.getKeyCode();

        if (kc == ke.VK_ENTER) {

            System.out.println(editorPaneHistory.getText());

            System.out.println(editorPaneHomeText.getText());

            editorPaneHistory.setText(editorPaneHomeText.getText());

            //JEditorPane - editorPaneHistory
            //JEditorPane - editorPaneHomeText

            editorPaneHomeText.setText(null);

            editorPaneHomeText.setCaretPosition(0);

        }
    }
}

Ответы [ 2 ]

1 голос
/ 27 апреля 2010

После запуска кода JEditorPane реагирует на клавишу ввода обычным способом, вставляя новую строку.Попробуйте вызвать ke.consume(), чтобы «потреблять» событие, чтобы сам JEditorPane не обрабатывал его.

0 голосов
/ 27 апреля 2010

Не используйте KeyListener. Вы должны использовать пользовательское действие. Таким образом, вы можете заменить действие по умолчанию. Читайте о Привязках клавиш .

...