2013-08-24 4 views
-1

Я пытаюсь создать редактор xml, у которого должен быть помощник по содержанию. Я новичок в java, поэтому мой код работает неправильно.Помощник по контенту в JAVA

Я пытаюсь изменить цвет текста при вводе текста (слов между «<» и «>» включая «<» и «>» должен быть синим), мой неработающего код:

textPane.addKeyListener(new KeyAdapter() { 
     @Override 
     public void keyTyped(KeyEvent arg0) { 
      char key = arg0.getKeyChar(); 
      switch(key){ 
      case '<': textPane.setForeground(Color.blue); break; 
      case '>': textPane.setForeground(Color.black); break; 
     } 
    } 

Спасибо

+1

«Не работает должным образом» не является описательным. Какая ошибка вы получаете? – Jimbo

+0

Вы уверены, что перекрасили рамку? Независимо от того, какие изменения вы применяете к вещам в кадре, не вступайте в силу, пока вы не перекрасите кадр (или система автоматически обновит дисплей). – gparyani

+0

Хотя подумайте о том, чтобы получить доступ к 'Регулярным выражениям'. Подход, который вы используете ('KeyListeners'), не будет работать, если в случае, если кто-то копирует контент из другого места и вставляет его на' JTextPane', рассмотрите возможность использования 'DocumentFilter'. Для получения дополнительной информации см. [Функции текстовых компонентов] (http://docs.oracle.com/javase/tutorial/uiswing/components/generaltext.html) :-) –

ответ

2

Ваш подход не сработает. Вам необходимо работать с классами Document, AttributeSet и DocumentListener.

DocumentListener учебник: http://docs.oracle.com/javase/tutorial/uiswing/events/documentlistener.html

Попробуйте делать некоторые чтение, и вернуться с вопросами о таком подходе. Все, что вы собираетесь выполнить с вашим текущим типом, - это изменение цвета текста всего компонента, а не только бит между угловыми скобками.

Это часть задания? Кажется, это немного связано с кем-то новым в программировании.

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