Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    207

    [Java] Rilevare cambiamento di testo in un TextField

    Ciao a tutti, devo fare in modo che quando inserisco un valore in un textfield se e' selezionato un checkbox deve essere inserito un testo in un altro textfield.....se poi inserisco un'altro testo nel textfield deve essere ricontrollato il checkbox e risettato l'altro textfield.
    Quindi mi servirebbe un modo x fare delle operazioni ogni volta che viene cambiato il testo di un textfield.....come posso fare?

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Codice PHP:
        JTextField field = new JTextField();
        
    field.getDocument().addDocumentListener(myListener); 
    dove myListener deve essere un oggetto di una classe che implementa DocumentListener e deve implementare i seguenti metodi:

    Codice PHP:
    void changedUpdate(DocumentEvent e
              
    //Gives notification that an attribute or set of attributes changed.
     
    void insertUpdate(DocumentEvent e
              
    //Gives notification that there was an insert into the document. 

    void removeUpdate(DocumentEvent e
              
    //Gives notification that a portion of the document has been removed. 
    In entrambi i metodi insertUpdate e removeUpdate devi eseguire i controlli che ti interessano. Tali controlli puoi raggrupparli in un unico metodo e invocare tale metodo sia in insertUpdate che in removeUpdate.


  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    207
    Ho provato a fare come mi hai detto ma non mi funziona....allora ho prima di tutto creato questa classe:

    Codice PHP:
      public class ResolutionCheck implements DocumentListener {
           
    int height,width;
           public 
    ResolutionCheck(String tmpImg){
               
    ImageIcon tmpImg_icon;
               
    Image image;
               
               
    tmpImg_icon = new ImageIcon(tmpImg);
               
    image tmpImg_icon.getImage();
          
               
    this.height tmpImg_icon.getIconHeight();
               
    this.width tmpImg_icon.getIconWidth();
               
    System.out.println("Listener Created:");
           }
          
          public 
    void changedUpdate(DocumentEvent e) { System.out.println("changedUpdate");}
          
          public 
    void insertUpdate(DocumentEvent e)  {
              
    System.out.println("insertUpdate");
              
    changeResolution(new Integer(myself.text3.getText()).intValue(),new Integer(myself.text4.getText()).intValue());
          }
          
          public 
    void removeUpdate(DocumentEvent e) {
              
    System.out.println("removedUpdate");
              
    changeResolution(new Integer(myself.text3.getText()).intValue(),new Integer(myself.text4.getText()).intValue());
          }
          
          
    void changeResolution(int nheight,int nwidth){
             
    double nRatio = (double)nwidth / (double)nheight;
             
    double imageRatio = (double)width / (double)height;
             if (
    nRatio imageRatio) {
                
    nheight = (int)(nwidth imageRatio);
                
    myself.text4.setText(""+nheight);
             }
             else {
                
    nwidth = (int)(nheight imageRatio);
                
    myself.text3.setText(""+nwidth);
            }
            
    System.out.println(nwidth+"x"+nheight);
          }



       } 
    poi ho inserito nella classe principale della gui questo codice
    Codice PHP:

    ResolutionCheck res 
    = new ResolutionCheck(file.getPath());;
    text3.getDocument().addDocumentListener(res);
    text4.getDocument().addDocumentListener(res); 
    pero' quando modifico il testo dei TextField non succede nulla, nn stampa nemmeno l'out sul terminale.....quindi suppongo che non venga proprio richiamato il listener....cosa ho sbagliato?????

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Non so, a me funziona ... per capire cosa sbagli dovrei vedere un po piu di codice.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    207
    mi potresti spedire un esempio di codice dove funziona???la mia email e' frog841@yahoo.it
    cosi' vedo xke a me nn funziona....

  6. #6
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Codice PHP:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.text.*;

    public class 
    Text extends JFrame{


        public 
    Text(){
            
    addWindowListener(new WindowAdapter(){
                public 
    void windowClosing(WindowEvent e){
                    
    System.exit(0);
                }
            });

            
    setTitle("Text");
            
    setSize(20080);
            
            
    JTextField field = new JTextField();
            
    field.getDocument().addDocumentListener(new MyDocumentListener());
            
    getContentPane().add(field);
            
    show();
    }

        public static 
    void main(String[] args){
            new 
    Text();
        }

    }


    class 
    MyDocumentListener implements DocumentListener{
        public 
    void changedUpdate(DocumentEvent e){
            
    System.out.println("Changed Update");
        }
        
        public 
    void insertUpdate(DocumentEvent e){
            
    System.out.println("Text inserted");
        }
        
        public 
    void removeUpdate(DocumentEvent e) {
            
    System.out.println("Text Removed");
        }


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.