static void registerListeners(final SwingOutputFieldRenderer renderer, final JTextField textField) { if(renderer != null && textField != null) { textField.getDocument().addDocumentListener(new DocumentListener() { public void insertUpdate(DocumentEvent event) { send(event); textField.setForeground(Color.black); } public void removeUpdate(DocumentEvent event) { send(event); textField.setForeground(Color.black); } public void changedUpdate(DocumentEvent event) { send(event); } private void send(DocumentEvent event) { Document doc = event.getDocument(); InputEditEvent evt = doc.getLength() == 0 ? InputEditEvent.EMPTY : InputEditEvent.FULL; renderer.notifyInputEditListeners(evt); } }); textField.addFocusListener(new FocusAdapter() { public void focusLost(FocusEvent fe) { textField.setForeground(Color.black); } }); } }