2011-01-11 2 views
7

Единственный способ, которым я мог изменить цвет, - setForground(). Однако при наличии нескольких строк кода он делает все зеленым или черным. Есть ли другой способ или любой способ решения этой проблемы? Благодаря!Java: Как изменить цвет определенной строки или строки строки в области текста?

int key = evt.getKeyCode(); 
    if (key == KeyEvent.VK_ENTER) 
    { 
     String tb1EnterdValue = tb1.getText().toString(); 
     if((tb1EnterdValue.equals("yes"))) 
     { 
      TextArea1.setForeground(Color.green); 
    else 
     { 
       TextArea1.setForeground(Color.lightGray); 
     } 
     this.TextArea1.append(">"+tb1EnterdValue+newline); 
     this.tb1.setText(""); 

ответ

3

Я бы использовал JTextPane с атрибутами (а не HTML) для изменения цвета текста. В разделе из учебника Swing от Text Component Features приведены рабочие примеры, которые помогут вам начать работу.

Я попытался JTextPanes раньше, но они не позволяют мне использовать Append() метод

Дописывать() метод просто удобный метод, который позволяет добавить текст в конец документ. Вы можете реализовать собственный метод append() для JTextPane. Просто посмотрите исходный код JTextArea и скопируйте код из его метода append().

+0

Спасибо, но как именно получить исходный код от JTextArea? – Kevin

+0

Исходный код поставляется с JDK. Его в файле src.zip. – camickr

+0

Получил это, но где скопировать этот код? – Kevin

0

Это качели, и вы используете JTextAreas? Если да, укажите конкретный вопрос, а затем не используйте JTextArea, поскольку он не является идеальным текстовым компонентом для использования, если вы хотите иметь несколько форматов в одном текстовом компоненте. Вместо этого рассмотрите использование JTextPane или JEditorPane. В учебниках рассказывается, как их использовать и когда их следует использовать.

+0

Да, это качели и JTextArea. Я пробовал JTextPanes раньше, но они не позволят мне использовать метод append(), и мне нужно сделать каждую «команду» на новой строке. – Kevin

+0

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

+0

Как это сделать? Потому что мне нужен курсор для создания новой строки после каждой записи в текст - что угодно. Как есть какие-то методы, похожие на append? – Kevin

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