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

    [Java] ottimizzare keylistener

    Salve,
    vorrei ottimizzare la gestione dei keylistener.
    Attualmente creo un keylistener per ogni jtextfield, in questo modo mi ritrovo con diverse centinaia di keylistener che appesantiscono il sistema.
    Tutti questi keylistener svolgono + o - lo stesso compito, il problema è che dipendono dal jtextfield chiamante.
    Esempio :
    codice:
    KeyListener k=new KeyListener() {
    
                public void keyTyped(KeyEvent e) {
                
                    
                }
    
                public void keyPressed(KeyEvent e) {
                  
             String  testo=textfield1.getText();
            if (testo.equalsIgnoreCase("controllo")) {
             //fai qualcosa
    }
                   
                    
                }
    
                public void keyReleased(KeyEvent e) {
                   
                }
            };  
    textfield1.addKeyListener(k);
    KeyListener k2=new KeyListener() {
    
                public void keyTyped(KeyEvent e) {
                
                    
                }
    
                public void keyPressed(KeyEvent e) {
                  
             String  testo=textfield2.getText();
            if (testo.equalsIgnoreCase("controllo")) {
             //fai qualcosa
    }
                   
                    
                }
    
                public void keyReleased(KeyEvent e) {
                   
                }
            };  
    textfield2.addKeyListener(k2);
    c'è un modo per riconoscere il jtextfield chiamante in modo da unificare i due keylistener?
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  2. #2
    Pensavo di memorizzare i puntatori all'oggetto creato con :
    AccessibleContext prova=textfield1.getAccessibleContext();
    AccessibleContext prova2=textfield2.getAccessibleContext();

    eppoi all'interno di keylistener ricavare il puntatore del "chiamante" ,solo che allo stato attuale non so come fare
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Il componente "sorgente" dell'evento lo scopri con getSource() invocato sull'evento passato al metodo del listener. Ormai dovrebbero saperlo pure i muri .....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Originariamente inviato da andbin
    Il componente "sorgente" dell'evento lo scopri con getSource() invocato sull'evento passato al metodo del listener. Ormai dovrebbero saperlo pure i muri .....
    scusa l'ignoranza ma g.getsource (dove g è mousevent) mi dà queste info
    codice:
    javax.swing.JTextField[,54,5,114x20,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@14a9972,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],columns=10,columnWidth=11,command=,horizontalAlignment=LEADING]
    da qui come faccio a capire che si tratta di textfield1 o di textfield2?
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Object source = e.getSource();

    if (source == textfield1)
    .....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.