Ich habe einige Textfelder. Wie aktivieren Sie die Schaltfläche, wenn der Benutzer gefüllt werden alle Textfelder und deaktivieren, wenn der Benutzer etwas löschen? Ich bin mit Swing.
Den Vorteil der Verwendung einer ButtonModel und Document statt einer JButton und JTextField ist, können Sie leicht ändern Sie die konkreten Implementierungen und Sie haben keine sorgen zu machen, wie sich Ihre ui-Komponenten aktualisiert werden, weil Sie sich automatisch aktualisiert, wenn sich Ihr Modell ändert.
Können Sie einen Ereignis-listener, um zu sehen, wenn Textfeldern ändern. Dann deaktivieren Sie die Schaltfläche, wenn Sie eine Felder leer sind:
field1.addKeyListener(newKeyAdapter(){publicvoid keyReleased(KeyEvent e){//watch for key strokesif(field1.getText().length()==0|| field2.getText().length()==0)
button.setEnabled(false);else{Button.setEnabled(true);}}});
Die Strategie hier ist:
Uhr für alle Tastendrücke auf Ihren Feldern. Sie benötigen, duplizieren Sie diese Ereignis-listener für Feld 2 (und andere Felder, die Sie haben könnten).
Standard-Schaltfläche deaktiviert, da die Felder leer sind
Wenn die Felder immer null-Zeichen, deaktivieren Sie die Schaltfläche. Andernfalls aktivieren Sie es.
können wir nicht verwenden diese für mehrere Felder auf einmal???
Da swing basiert auf MVC können Sie die Modell-Objekte und-hören ändert.
Wenn man
Document
änderungen derButtonEnablement
einen Blick auf alleDocument
s und aktivieren Sie dieButtonModel
.Den Vorteil der Verwendung einer
ButtonModel
undDocument
statt einerJButton
undJTextField
ist, können Sie leicht ändern Sie die konkreten Implementierungen und Sie haben keine sorgen zu machen, wie sich Ihre ui-Komponenten aktualisiert werden, weil Sie sich automatisch aktualisiert, wenn sich Ihr Modell ändert.InformationsquelleAutor René Link
Können Sie einen Ereignis-listener, um zu sehen, wenn Textfeldern ändern. Dann deaktivieren Sie die Schaltfläche, wenn Sie eine Felder leer sind:
Die Strategie hier ist:
InformationsquelleAutor Roy Iacob