JTextPane добавляет новую строку

В каждой статье ответ на вопрос «Как добавить строку в JEditorPane?» что-то вроде

jep.setText(jep.getText + "new string"); 

Я пробовал это:

 jep.setText("Termination time : " + CriterionFunction.estimateIndividual_top(individual) + " 
"); jep.setText(jep.getText() + "Processes' distribution:
");

И в результате я получил «Termination time: 1000» без распределения «Процессы»:

Почему это случилось???

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

Я предпочитаю использовать JTextPane, а затем использовать атрибуты. Простым примером может быть что-то вроде:

 JTextPane textPane = new JTextPane(); textPane.setText( "original text" ); StyledDocument doc = textPane.getStyledDocument(); // Define a keyword attribute SimpleAttributeSet keyWord = new SimpleAttributeSet(); StyleConstants.setForeground(keyWord, Color.RED); StyleConstants.setBackground(keyWord, Color.YELLOW); StyleConstants.setBold(keyWord, true); // Add some text try { doc.insertString(0, "Start of text\n", null ); doc.insertString(doc.getLength(), "\nEnd of text", keyWord ); } catch(Exception e) { System.out.println(e); } 

JEditorPane , просто как JTextPane имеет Document , который можно использовать для вставки строк.

Что вы хотите сделать, чтобы добавить текст в JEditorPane, этот fragment:

 JEditorPane pane = new JEditorPane(); /* ... Other stuff ... */ public void append(String s) { try { Document doc = pane.getDocument(); doc.insertString(doc.getLength(), s, null); } catch(BadLocationException exc) { exc.printStackTrace(); } } 

Я тестировал это, и он отлично работал для меня. doc.getLength() – это то, где вы хотите вставить строку, очевидно, с этой строкой вы добавляете ее в конец текста.

setText – установить весь текст в текстовую область. Используйте интерфейс StyledDocument для добавления, удаления, an и т. Д. На текст.

 txtPane.getStyledDocument().insertString( offsetWhereYouWant, "text you want", attributesYouHope); 
  • SwingPropertyChangeSupport для динамического обновления JTextArea
  • Как изменить цвет JSplitPane
  • Разница между paint () и paintcomponent ()?
  • Как сделать перемещение изображения во время прослушивания нажатия клавиши на Java.
  • Есть ли хороший и свободный выбор даты и времени для Java Swing?
  • Безопасно ли создавать виджеты Swing / AWT NOT на тему Dispatch Event?
  • Java Swing Blank JFrame подходит?
  • Как сохранить настройки пользовательских настроек в Java?
  • как добавить jscrollpane в jframe?
  • Java GUI-слушатели без AWT
  • Как получить значение из JTextField в Java Swing?
  • Interesting Posts

    Как я могу войти в систему на свой компьютер, не зная его пароль?

    Как разработать расширяемое программное обеспечение (архитектура плагина)?

    Медиа-запрос, чтобы определить, является ли устройство сенсорным

    Как изменить FileZilla, чтобы View / Edit открывал .html в Notepad ++, а не Firefox

    Долгосрочная задача в WebAPI

    setValue: forUndefinedKey: этот class не является ключевым значением, совместимым с кодировкой для ключа

    Поддерживает ли Selenium безгласное тестирование браузера?

    Как я могу объединить два объекта JObject?

    Фиксированное или постоянное местоположение монтирования для жесткого диска USB

    Windows 10 не будет спать, даже после переопределения драйверов

    Понимание опции transclude определения директивы?

    Java Generics: не может использовать List для списка ?

    Почему .ToString () в нулевой строке вызывает нулевую ошибку, когда .ToString () отлично работает в nullable int с нулевым значением?

    Лучшая клавиатура со встроенным указывающим устройством для медиацентра Mac?

    Фоновая размытость с помощью CSS

    Давайте будем гением компьютера.