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

    [JAVA] - Mouse Event e oggetto che lo genera

    Salve, come faccio ad intercettare l'oggetto preciso che genera l'evento del mouse in entrata su di esso?

    Mi spiego meglio, ho tre jTexField. Imposto per ognuna l'azione del mouse. Nell'azione faccio una chiamata ad una void mostraHelp a cui passo l'evento ed un messaggio.

    Nelle sotto-classi di questa specializzerò il messaggio in base alla textField specifica. Ma come la intercetto?

    In realtà avrei potuto impostare un'azione separata per ogni campo di testo, solo che vorrei evitare ridondanza nel codice. E' possibile secondo voi? Altrimenti non perdo tempo e lo faccio singolarmente.

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] - Mouse Event e oggetto che lo genera

    Originariamente inviato da Vincent
    come faccio ad intercettare l'oggetto preciso che genera l'evento del mouse in entrata su di esso?
    Ogni evento ha il metodo getSource() che fornisce appunto l'oggetto che ha originato l'evento.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    si ma la getSource() mi restituisce per esempio JTextBox oppure posso sapere quale delle tre che ho nel Frame ha causato l'evento?

    se io creo un metodo che stampa un messaggio, posso differenziare il messaggio in base alla sorgente? Se sì come si fa?

    Io ho creato gli eventi singoli per ogni Componente... ma mi sembra ridondante in quanto tutti chiamano lo stesso metodo... che fa tra l'altro sempre la stessa cosa...

    Confido in voi

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Vincent
    si ma la getSource() mi restituisce per esempio JTextBox oppure posso sapere quale delle tre che ho nel Frame ha causato l'evento?

    se io creo un metodo che stampa un messaggio, posso differenziare il messaggio in base alla sorgente? Se sì come si fa?
    Se hai tenuto i reference ai tuoi componenti da qualche parte (es. in campi di istanza), basta che confronti il reference ottenuto da getSource() con quello dei tuoi componenti.

    codice:
    private JTextField textField1;
    private JTextField textField2;
    ...
    
        Object src = evt.getSource();
    
        if (src == textField1) {
            ....
        }
    Questo in genere è un modo semplice e veloce per distinguere la sorgente dell'evento nel caso in cui il listener sia comune a più componenti.

    Originariamente inviato da Vincent
    che fa tra l'altro sempre la stessa cosa...
    Beh, bisognerebbe vedere cosa devi fare di preciso. Quando dici: "Nelle sotto-classi di questa specializzerò il messaggio in base alla textField specifica.", cosa vuoi dire? Che hai definito classi che estendono JTextField?? E questo messaggio (String immagino) è un campo di questa tua classe?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    io utilizzavo il metodo equals() e mi ritornava sempre false...

    farò questa prova... Grazie mille

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Vincent
    io utilizzavo il metodo equals() e mi ritornava sempre false...
    Tecnicamente deve funzionare anche con equals(), dopotutto se 2 reference a e b sono uguali è anche vero che a.equals(b) deve dare 'true'.
    Ma equals() non sarebbe comunque molto appropriato.

    Ripeto: chiarisci cosa intendi con Nelle sotto-classi di questa specializzerò il messaggio.....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Originariamente inviato da andbin
    Ripeto: chiarisci cosa intendi con Nelle sotto-classi di questa specializzerò il messaggio.....
    Allora ho un frame padre.

    Nei frame figli visualizzo tutti i componenti del padre, ma in modo specifico rispetto al figlio.

    Se ho bisogno di un pannello lo visualizzo se no, lo setto invisible.

    Quindi nel padre imposto l'azione del mouse, questa chiama il metodo mostraHelp che avvisa l'utente di cosa deve inserire nelle jtextbox.

    Ovviamente il messaggio cambia da sotto-classe a sotto-classe.

    Spero di essere stato più chiaro...

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.