JTextField: Eventerkennungsproblem.

PositivDenker

Mitglied
Guten Tag,
Ich kann kein Eventverfolgung für JTextField fertigstellen:
Code:
  import javax.swing.text.*;
  import java.awt.*;
  import javax.swing.*;
  import javax.swing.event.*;

  public class Test extends JFrame {
  
  static final long	  serialVersionUID=0L;
  JTextField f = new JTextField();
   /**
    * Konstruktor
    */
   public Test() {
     // Der Titel des Fensters soll der
     // Name der Klasse sein
     super(Test.class.getName());

     // Layout-Manager setzen
     getContentPane().setLayout(new BorderLayout());

     // Ein Textfeld oben an den Rand setzen
     getContentPane().add(new JTextField("Texteingabe"),
                              BorderLayout.NORTH);


 Document doc = f.getDocument();

 doc.addDocumentListener(
   new DocumentListener() {
     public void changedUpdate(DocumentEvent e) {
       // when text/attributes change...
       System.out.println("change-update");
     }
     public void insertUpdate(DocumentEvent e) {
       // when text inserted...
        System.out.println("insert-update");
     }
     public void removeUpdate(DocumentEvent e) {
       // when text removed...
        System.out.println("remove-update");
     }
  });
     JButton button = new JButton("Klick mich!");
     button.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {

         JOptionPane.showMessageDialog (
              (JButton) e.getSource(), "Vielen Dank.");
       }
     });

     getContentPane().add(button, BorderLayout.CENTER);
  	 getContentPane().add(f, BorderLayout.WEST);
   
     setSize(200, 100)
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     setVisible(true);
   }

   public static void main(String[] argv) {
     new Test();
   }
  }
Was mache ich falsch?:confused:
 
Hi,
das klappt eigentlich hervorragend.
Dein Problem wird sein, dass du wahrscheinlich in das falsche Textfeld schreibst. Nämlich das, was du über BorderLayout.North eingefügt hast.
Das andere Textfeld, an dem der Listener hängt, ist nur ganz winzig am linken Rand zu erkennen....


Grüße!
 
Falls es jemand braucht , hier funktionsfähige "Version" :
Code:
import javax.swing.text.*;
  import java.awt.*;
  import java.awt.event.*;
  import javax.swing.*;
  import javax.swing.event.*;

  public class Test extends JFrame {

  static final long	  serialVersionUID=0L;
  JTextField f = new JTextField("Texteingabe");
   /**
    * Konstruktor
    */
   public Test() {
     // Der Titel des Fensters soll der
     // Name der Klasse sein
     super(Test.class.getName());

     // Layout-Manager setzen
     getContentPane().setLayout(new BorderLayout());

     // Ein Textfeld oben an den Rand setzen
     getContentPane().add(f,
                              BorderLayout.NORTH);


 Document doc = f.getDocument();

 doc.addDocumentListener(
   new DocumentListener() {
     public void changedUpdate(DocumentEvent e) {
       // when text/attributes change...
       System.out.println("change-update");
     }
     public void insertUpdate(DocumentEvent e) {
       // when text inserted...
        System.out.println("insert-update");
     }
     public void removeUpdate(DocumentEvent e) {
       // when text removed...
        System.out.println("remove-update");
     }
  });
     JButton button = new JButton("Klick mich!");
     button.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {

         JOptionPane.showMessageDialog (
              (JButton) e.getSource(), "Vielen Dank.");
       }
     });

     getContentPane().add(button, BorderLayout.CENTER);

     setSize(200, 100);
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     setVisible(true);
   }

   public static void main(String[] argv) {
     new Test();
   }
  }
 

Neue Beiträge

Zurück