Ho una serie di JTextComponent che l'utente deve riempire. Una volta che sono tutte "piene" si deve attivare il bottone di salvataggio.
Per fare questo ho creato questo piccolo listener:
In pratica ad ogni nuovo tasto premuto controllo se è tutto ok ed eventualmente attivo il bottone.codice:class ValidatorListener extends KeyAdapter { private JTextComponent[] components = new JTextComponent[4]; ValidatorListener() { components[0] = (JTextComponent) categoriesComboBox.getEditor().getEditorComponent(); components[1] = nameTextField; components[2] = tagsTextField; components[3] = codeEditor; } public void keyTyped(KeyEvent e) { boolean enabled = true; for (JTextComponent c : components) { enabled &= (c.getText() + (e.getSource() == c ? e.getKeyChar() : "")).trim().length() != 0; } saveButton.setEnabled(enabled); } }
1. Così com'è ora non mi sembra granchè... Come potrei renderlo migliore?
2. Problema "grave": se il contenuto di uno dei JTextComponent viene tagliato (CTRL/COMMAND + X) il bottone rimane attivo quando invece dovrebbe disabilitarsi. Se cancello con il backspace invece nessun problema. Come potrei risolvere questo problema?
Grazie![]()

Rispondi quotando