Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [JAVA] Aiuto DocumentListener

    Salve a tutti, avrei bisogno di aiuto con il DocumentListener.
    Esaminando il seguente
    codice:
    public class GrafDueInsDB extends JDialog implements ActionListener, DocumentListener {
    .....
    
    JTextField dipendenzaText = new JTextField();
    JTextField indirizzoText = new JTextField();
    .....
    
    	public GrafDueInsDB(String titolo, String img) {
    ......
    
                    dipendenzaText.getDocument().addDocumentListener(this);
    		indirizzoText.getDocument().addDocumentListener(this);
    ......
    	}
    
    	public void insertUpdate(DocumentEvent e) {
    		System.out.println(e.getDocument());
    		checkDati();
    	}
    	public void removeUpdate(DocumentEvent e) {
    		System.out.println(e.getChange(null));
    	}
    	public void changedUpdate(DocumentEvent e) {} // implementazione formale
    ......
    Non riesco ad ottenere, durante la digitazione del testo nei JTextField in quale dei JTextField avviene la digitazione, cioè avere il testo che cambia è semplice:
    codice:
    	public void insertUpdate(DocumentEvent e) {
    		System.out.println(dipendenzaText.getText());
    		System.out.println(indirizzoText.getText());
    		checkDati();
    	}
    Ma come faccio a farmi restituire il nome del JTextField in cui avviene la digitazione del testo!?
    Ho visto i metodi di DocumentEvent, quali getChange(), getDocument(), getLength(), getOffset() e getType() ma senza risultati utili.

    Grazie a Tutti

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non c'è nulla di prefabbricato.
    Un modo "veloce" per poter ottenere ciò che ti serve è ben spiegato in questo post di StackOverflow:

    http://stackoverflow.com/questions/5...-documentevent

    In buona sostanza, dovrai aggiungere una property al document associato a ciascuna textfield che conterrà il riferimento al componente "owner" del documento.
    Successivamente, recupererai il componente dalla property associata al Document che ha sollevato l'evento.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Grazie per l'aiuto Lele, ma potresti farmi un esempio con il codice che ho postato io, perchè ho provato a "trasportarvi" il codice di StackOverflow ma ci sono errori che non riesco a capire!!

    Grazie per l'aiuto

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da Wolvy23
    Grazie per l'aiuto Lele, ma potresti farmi un esempio con il codice che ho postato io, perchè ho provato a "trasportarvi" il codice di StackOverflow ma ci sono errori che non riesco a capire!!

    Grazie per l'aiuto
    Il codice su StackOverflow mi sembra chiarissimo e non saprei spiegarlo meglio, che problemi incontri?

  5. #5
    Io ho provato il secondo codice,
    mi da diversi errori, qualcuno di sintassi,
    come in riga
    codice:
    field.getDocument.addDocumentListener(documentListener);
    non dovrebbe esser così?
    codice:
    field.getDocument().addDocumentListener(documentListener);
    Nel restante codice mi sembra manchino le graffe:
    codice:
    if (arg0.getSource() instanceof JTextField)
    e poi diversi errori per ogni riga di codice, come creare una Classe per MyComponent etc etc

    Probabilmente ho sbagliato io a "trasportare" il codice nel mio,
    per questo ti chiedevo un esempio con il codice da me sopra postato.

    Grazie

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ehm... hai copiato il codice dell'utente che ha posto il quesito... che evidentemente ha incollato il codice un po' alla buona. Guarda più giù, dove c'è la prima risposta (quella dell'utente dogbane)...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    me culpa.... ti chiedo vivamente scusa
    Lo leggerò con calma, ora devo chiudere, grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.