I've made a documentlistener that will call a method when text is inserted. It works but the problem is that it acts as if it's in a loop and is kept being called.
The method uses swingutilties.invokelater from inside the method.
private void addNewLine() {
SwingUtilities.invokeLater( () -> {
textArea.append(System.getProperty("line.separator")+"hey");
});
}
private final DocumentListener addNewLine = Handlers.forDocumentUpdate((event) -> {
addNewLine();
});
@SuppressWarnings("serial")
static DocumentListener forDocumentUpdate(Consumer<? super DocumentEvent> eventHandler) {
return new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent event) {
eventHandler.accept(event);
}
@Override
public void removeUpdate(DocumentEvent event) {
}
@Override
public void changedUpdate(DocumentEvent event) {
}
};
}