Подсветка синтаксиса JTextPane - ограничивает мое форматирование? - PullRequest
3 голосов
/ 17 марта 2012

Я сейчас программирую IDE и использую JTextPane в качестве «редактора кода».

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

Я использую HTML для замены http://img21.imageshack.us/img21/6185/910b3b10cad4487f9c96d43.png на Green Comment:

private void jTextPane1KeyTyped(java.awt.event.KeyEvent evt) {                                    

        String SyntaxedCode = jTextPane1.getText();

        jTextPane1.setText(SyntaxedCode.replaceAll("//", "<span style='color: green'>//</span>"));

}                                   

Получение результата:

enter image description here

Теперь, часть, с которой я борюсь, это тот факт, что JTextPane ограничивает мой интервал ... Я могу добавить только один или два пробела в строке, а затем JTextPane просто перестает принимать пробелы. Также я не могу использовать клавишу ввода для перехода на новую строку.

Почему это так меня ограничивает и как мне этого избежать?

Заранее спасибо;

1 Ответ

4 голосов
/ 17 марта 2012

1) для прослушивания событий с клавиатуры на JTextComponents , тогда у вас есть реализации DocumentListener

2) в случае, если вы хотите фильтровать, заблокировать илиизмените ввод с клавиатуры, и до того, как это содержимое будет отображено в графическом интерфейсе, вам нужно поискать DocumentFilter

3) Я бы предложил использовать Highlighter ,Конечно, возможно использовать форматированный текст HTML, тогда лучше создать собственный HtlmEditorKit

4) забытый для прослушивания в Swing JComponents с помощью KeyListener , используйте KeyBindings

...