2011-12-14 4 views
1

Я пытаюсь чередовать цвет текста в JTextPane без изменения цвета всей JTextPane. Я нашел класс онлайн, который позволяет это сделать, но когда я попытался создать объект «ColorPane», чтобы запустить метод, который он предоставил, код скомпилирован, но просто не работал. Мой ноутбук просто сыграл типичный «звук без звука Windows». Итак, я пытаюсь просто добавить метод, который мне нужен, но я получаю некоторые ошибки несоответствия типа.Цвет альтернативного текста в JTextPane

Вот класс ColorPane: (я просто вынул методы, которые создали таблицу) http://www.java2s.com/Code/Java/Swing-JFC/ExtensionofJTextPanethatallowstheusertoeasilyappendcoloredtexttothedocument.htm

Вот метод с ошибками типа несоответствия: http://pastebin.com/jWtQK0Va

Спасибо!

ответ

1

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

public void appendToPane(String yourText, Color colour) 
    { 
     StyleContext sc = StyleContext.getDefaultStyleContext(); 
     AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, colour); 
     aset = sc.addAttribute(aset, StyleConstants.FontFamily, "Lucida Console"); 

     int len = tPane.getDocument().getLength(); 
     tPane.setCaretPosition(len); 
     tPane.setCharacterAttributes(aset, false); 
     tPane.replaceSelection(yourText); 
    } 

Описанный выше метод использует следующие импорта:

  • импорта javax.swing.text.AttributeSet;
  • импорт javax.swing.text.SimpleAttributeSet;
  • импорт javax.swing.text.StyleConstants;
  • импорт javax.swing.text.StyleContext;
  • импорт javax.swing.JTextPane;

И tPane является объектом JTextPane. Просто просто, если вы хотите, чтобы ваше имя появилось синим цветом, вызовите метод как appendToPane («Ваше имя», Color.BLUE); и теперь, если вы хотите, чтобы ваш другой текст выглядел красным, затем снова вызовите метод appendToPane («Новый текст», Color.RED). Надеясь, что это решит запрошенный вами запрос.

С уважением

+0

Спасибо! незначительная опечатка: STyleConstants должен быть StyleConstants – adhg

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