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

    [JAVA] Controllo modifiche del testo in un JTextField

    Ho una JTextFiels e un JButton. Il Bottone inizialmente non è editabile e dovrei renderlo editabile solo quando viene scritto del testo nella JTextField (così come rimetterlo non editabile se il testo nella JTextField viene cancellato).
    Per la TextField c'è un metodo apposito per controllare quando il contenuto cambia però io devo per forza usare una JTextField e non so come fare visto che lo stesso metodo non funziona!

    Qualche idea in proposito?

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    E' appena appena un po' più complessa:

    codice:
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    
    public class testoEBottone extends JFrame implements DocumentListener, ActionListener {
      
      JTextField tf;
      JButton button;
      
      public void actionPerformed (ActionEvent ae) {
        tf.setText("");    
      }
      
      public void changedUpdate (DocumentEvent de) {
      }
      
      public void insertUpdate(DocumentEvent de) {
        button.setEnabled(true);    
        button.setText("Attivato");
      }
      
      public void removeUpdate (DocumentEvent de) {
        if (de.getDocument().getLength()==0) {
          button.setEnabled(false);
          button.setText("Disattivato");
        }
      }
      
      public testoEBottone() {
        super("Testo attiva");
        this.getContentPane().setLayout(new GridLayout(2,1));
        tf = new JTextField();
        button = new JButton("Disattivato");
        button.setEnabled(false);
        button.addActionListener(this);
        this.getContentPane().add(tf);
        this.getContentPane().add(button);
        tf.getDocument().addDocumentListener(this);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.pack();
      }
      
      public static void main (String[] args) {
        testoEBottone teb = new testoEBottone();
      }
    }
    Questo perché hanno pensato ad una gestione comune degli eventi sui textcomponent in swing (passando dalla creazione del document).
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Avevo provato con il DocumentListener però mi diceva che non era associabile ad un JTextField...ma da quando ho visto dal codice che hai postato basta fare

    codice:
    tf.getDocument().addDocumentListener(this);
    adesso provo!

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  4. #4
    Grazie funziona benissimo ora!

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

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 © 2024 vBulletin Solutions, Inc. All rights reserved.