2014-10-01 2 views
0

Я использую JEditorPane как компонент для отображения кода. JEditorPane находится в моем настраиваемом PropertyEditorSupport для моего приложения платформы Netbeans и отображается в окне OutlineView и в окне свойств.Завершить ввод в JEditorPane на ENTER

Я уже ограничил JEditorPane только одной строкой, используя DocumentFilter. Однако я не могу восстановить функциональность JTextField, чтобы закончить ввод в компонент, нажав клавишу ENTER.

Я уже думал о добавлении события KeyListener в JEditorPane, но не уверен, что делать в случае события. Есть ли способ, который нужно вызвать для «завершения ввода текста»?

ответ

0

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

Эти два утверждения, кажется, противоречат друг другу. Обычно коды состоят из нескольких строк, а не одной строки.

В любом случае, если вы просто отображаете текст, я бы использовал JTextPane, поскольку он поддерживает текстовые атрибуты. JEditorPane используется для отображения HTML.

Я уже думал о добавлении событие KeyListener

Не используйте KeyListener. Swing был разработан для использования с Key Bindings. В основном вы создаете Action (в вашем случае вы продлеваете TextAction), и вы привязываете Action к KeyStroke. Проверьте Key Bindings, который содержит дополнительную информацию, а также ссылку на учебник Swing по телефону How to Use Key Bindings.

+0

Я использую JEditorPane из-за его способности иметь тип контента. Это позволяет мне регистрировать выделенную вами синтаксическую подсветку внутри Netbeans для этого типа содержимого. Я согласен с вами, что может быть, как правило, более одной строки. В моем случае использования мы используем только JEditorPane, чтобы ввести простую строку кода, чтобы обеспечить быстрый способ настройки. – padde

+0

@padde, а JEditorPane - побочная проблема, ключевые привязки отвечают на ваш вопрос об обработке ключа Enter. – camickr

Смежные вопросы