TextListener bei JTextField

Status
Nicht offen für weitere Antworten.

Brain

Aktives Mitglied
Hallo!!!
Ich habe folgendes Problem: Ich will, dass die Eingabe die im JTextField eingegeben wurde auch in der Konsole bzw. ind der Eingabeaufforderung erscheint, wenn man dann den JButton "OK" angeklickt hat. Das Programm läuft zwar, doch wenn ich auf "OK" drücke, dann tauchen Fehler auf, die ich nicht beheben kann. Könnte mir bitte jemand helfen?
Hier ist der Quellcode, mit dem ich es probiert habe:

Code:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.TextEvent;
import java.awt.event.TextListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class Versuch extends JFrame implements ActionListener, TextListener {

	public JTextField jTextField;
	public JButton jButton;

	public static void main(String[] args) {
		Versuch fenster = new Versuch("Versuch");

		fenster.pack();
		fenster.setSize(400, 150);
		fenster.setResizable(false);
		fenster.getContentPane().setBackground(Color.WHITE);
		fenster.show();
	}

	Versuch(String titel) {
		super(titel);

		getContentPane().setLayout(null);

		JTextField jTextField = new JTextField("1234567890");
		jTextField.setCaretPosition(5);
		jTextField.addActionListener(this);
		jTextField.setBounds(50, 50, 200, 20);
		getContentPane().add(jTextField);

		JButton jButton = new JButton("OK");
		jButton.addActionListener(this);
		jButton.setBounds(260, 50, 52, 20);
		jButton.setBackground(Color.WHITE);
		getContentPane().add(jButton);

	}

	public TextEvent te;

	public void actionPerformed(ActionEvent ae) {
		String quelle = ae.getActionCommand();
		if (quelle.equals("OK")) {
			JTextField jTextField = (JTextField) te.getSource();
			System.out.println(jTextField.getText());

		}
	}

	public void textValueChanged(TextEvent te) {

		jTextField = (JTextField) te.getSource();
		System.out.println(jTextField.getText());

	}
}

Danke für jede Antwort!!!
 

Brain

Aktives Mitglied
Also das "te" mit "ae" vertauschen ging nicht.

Hier sind die Fehler:

java.lang.ClassCastException: javax.swing.JButton
at Versuch.actionPerformed(Versuch.java:51)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1767)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1820)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:258)
at java.awt.Component.processMouseEvent(Component.java:5021)
at java.awt.Component.processEvent(Component.java:4818)
at java.awt.Container.processEvent(Container.java:1525)
at java.awt.Component.dispatchEventImpl(Component.java:3526)
at java.awt.Container.dispatchEventImpl(Container.java:1582)
at java.awt.Component.dispatchEvent(Component.java:3367)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3359)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3074)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3004)
at java.awt.Container.dispatchEventImpl(Container.java:1568)
at java.awt.Window.dispatchEventImpl(Window.java:1581)
at java.awt.Component.dispatchEvent(Component.java:3367)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:191)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:98)
 

bummerland

Top Contributor
Brain hat gesagt.:
java.lang.ClassCastException: javax.swing.JButton

du versuchst, einen JButton in ein JTextField zu casten. das geht natürlich nicht. die variable jTextField gibts doch bei dir schon, die brauchst du nicht mehr erst casten, die kannst du direkt verwenden.
 

Brain

Aktives Mitglied
Ich wieß nicht, was du meinst. Ich habe versucht es auch ohne Button zu machen also nur mit Return. Aber es hat auch nicht funktioniert. Könntest du bitte den fertigen Quellcode schicken? Wäre echt dankbar!!!
 

bummerland

Top Contributor
Code:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.TextEvent;
import java.awt.event.TextListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class Versuch extends JFrame implements ActionListener, TextListener {

   public JTextField jTextField;
   public JButton jButton;

   public static void main(String[] args) {
      Versuch fenster = new Versuch("Versuch");

      fenster.pack();
      fenster.setSize(400, 150);
      fenster.setResizable(false);
      fenster.getContentPane().setBackground(Color.WHITE);
      fenster.show();
   }

   Versuch(String titel) {
      super(titel);

      getContentPane().setLayout(null);

      jTextField = new JTextField("1234567890");
      jTextField.setCaretPosition(5);
      jTextField.addActionListener(this);
      jTextField.setBounds(50, 50, 200, 20);
      getContentPane().add(jTextField);

      JButton jButton = new JButton("OK");
      jButton.addActionListener(this);
      jButton.setBounds(260, 50, 52, 20);
      jButton.setBackground(Color.WHITE);
      getContentPane().add(jButton);

   }

   public TextEvent te;

   public void actionPerformed(ActionEvent ae) {
      String quelle = ae.getActionCommand();
      if (quelle.equals("OK")) {
         System.out.println(jTextField.getText());

      }
   }

   public void textValueChanged(TextEvent te) {

      jTextField = (JTextField) te.getSource();
      System.out.println(jTextField.getText());

   }
}

du hattest JTextField jTextField = new JTextField("1234567890"); geschrieben. dadurch wurde nicht die instantzvariable genommen, sondern eine lokale variable, die nur in dieser methode gültig ist, angelegt. deshalb war dein jTextField noch null und es gab eine NullPointerException.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G KeyListener für JTextField Allgemeine Java-Themen 5
J Circumflex in JTextField Allgemeine Java-Themen 1
G JTextField Inhalt in einem Long einfügen Allgemeine Java-Themen 2
J JTextField nicht editierbar Allgemeine Java-Themen 5
G Aus JTextField Zahlen auslesen und random generieren Allgemeine Java-Themen 10
F JTextField funktioniert nicht Allgemeine Java-Themen 6
B JTextfield Allgemeine Java-Themen 9
E Eingabeprüfung JTextField. Fehler bei Copy-Paste Allgemeine Java-Themen 4
L JTextfield wird nicht ausgelesen Allgemeine Java-Themen 7
T JTextField in Listener leeren Allgemeine Java-Themen 2
M jTextField --> Zwischenspeicher Allgemeine Java-Themen 20
M Datum einlesen aus jTextField Allgemeine Java-Themen 2
G JTextField mit Zeichenbeschränkung Allgemeine Java-Themen 7
E JTextField auf JWindow Allgemeine Java-Themen 2
P Suche Benis IP/Netzwerkadresse JTExtField Allgemeine Java-Themen 2
S JTable editieren + in JTextField schreiben Allgemeine Java-Themen 7
O Inhalt vom JTextfield im DebugMode ermitteln? Allgemeine Java-Themen 2
M Autovervollständigung im JTextField Allgemeine Java-Themen 3
P JTextField textfarbe schwarz auch wenn JTF deaktiviert ist Allgemeine Java-Themen 4
M Text in JTextfield einfügen sofort dann wird Text gekürzt Allgemeine Java-Themen 2
MQue JTextField Kommastellen Allgemeine Java-Themen 5
G Problem mit jTextField Allgemeine Java-Themen 7
D JTextfield für double werte Allgemeine Java-Themen 2
F JTextField Eingabe automatisch bestaetigen Allgemeine Java-Themen 17
D Probleme beim FAQ (JTextField: Dokumentarten) Allgemeine Java-Themen 5
H Position von JTextField Allgemeine Java-Themen 2
O String übergeben ist name eines JTextField wie zugreifen Allgemeine Java-Themen 9
Z JTextField mit Model kommunizieren Allgemeine Java-Themen 6
G Fragen zu JTextField bzw. JTextArea Allgemeine Java-Themen 2
G JTextField: Feld für Ausgabe von Meldungen Allgemeine Java-Themen 14
G Frage zu JTextField Allgemeine Java-Themen 2
E Field-Objekt in JTextField parsen Allgemeine Java-Themen 3
F KeyListener für JTextField Allgemeine Java-Themen 4
G Nur Integer Werte in JTextField Allgemeine Java-Themen 4
H JTextField Allgemeine Java-Themen 2
C JTextField Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben