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» без распределения «Процессы»:
- Как сделать редактор таблиц JComboBox иметь дизайн обычного JComboBox?
- Динамически добавлять компоненты в JDialog
- Как настроить строку заголовка в JFrame?
- Java Swing: зачем изменять размер frameworks, чтобы добавить компоненты, добавленные
- Как настроить столбцы JTable для размещения самого длинного содержимого в ячейках столбца
Почему это случилось???
- KeyListener, keyPressed или keyTyped
- Как эффективно использовать cardlayout в java для переключения с панели с помощью кнопок внутри различных панельных конструкторов
- GUI не работает после перезаписи в MVC
- Как вызвать setUndecorated () после того, как кадр становится видимым?
- Как реализовать в Java (class JTextField), чтобы разрешить вводить только цифры?
- Добавить фоновое изображение на панель
- paintComponent не работает, если его вызывается рекурсивной функцией?
- Прокрутка JTable до указанного указателя строки
Я сомневаюсь, что это рекомендуемый подход для добавления текста. Это означает, что каждый раз, когда вы меняете какой-либо текст, вам нужно пересмотреть весь документ. Причина, по которой люди могут это сделать, состоит в том, что они не понимают, как использовать 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);