Zum Inhalt springen

Zugriff auf ein JTextField aus einer anderen Klasse


Chriz21

Empfohlene Beiträge

Hallo,

ich möchte gerne den Text eines JTextField's auslesen, komme da aber nicht dran und weiss nicht wie ich das machen soll. Ich habe den Quelltext mal so gekürzt das nur das wichigste da ist.


1. Klasse:

public class Start{


	public static Gui Fenster;

	public static Abschicken abschicken;


	public static void main (String[] args) {


		Fenster = new Gui();

		abschicken = new Abschicken(Fenster);

		Fenster.setVisible(true);

		}

}


2. Klasse:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;


public class Gui extends JFrame

{

	public JTextField bezugsnummer;


	public Gui()

	{

	 	getContentPane().setLayout(null);

	 	bezugsnummer = new JTextField(20);

                bezugsnummer.setBounds(200,50,100,20);

	 	bezugsnummer.setText("Test");

	 	getContentPane().add(bezugsnummer);


}


     // Methode setVisible wird überschrieben damit das Frame maximiert startet

     public void setVisible(boolean in) {

      super.setVisible(in); 

      this.setExtendedState(Frame.MAXIMIZED_BOTH); 

     } 

}


3.Klasse:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;


public class Abschicken implements ActionListener{



public Abschicken(JFrame Fenster){


		JButton abschicken = new JButton("Abschicken");

		abschicken.setBounds(10,10,200,20);

		abschicken.addActionListener(this);

		Fenster.getContentPane().add(abschicken);

		}


		public void actionPerformed(ActionEvent e)

	     {

	   		if (e.getActionCommand().equals("Abschicken")){

	     	System.out.println(Fenster.bezugsnummer.getText());

	     	}

	     }

}

In der Klasse 3 ist das Problem in der System.out.println Zeile....kann ich an den Inhalt des Feldes irgendwie drankommen? :rolleyes:

Gruß,

Chriz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

tue dir und uns einen gefallen und schreibe Variablen klein. ;)

Zum Problem:

Wenn du die Oberklasse JFrame übergibst ist bezugsnummer nicht ansprechbar, übergebe deine Gui oder caste.

Um auf ein im Konstruktor übergebenes Object in weiteren Methode zugreifen zu können, musst du lokal die Referenz speichern.


import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;


public class Abschicken implements ActionListener {


	private Gui fenster;


	public Abschicken(Gui fenster) {

		this.fenster = fenster;

		JButton abschicken = new JButton("Abschicken");

		abschicken.setBounds(10, 10, 200, 20);

		abschicken.addActionListener(this);

		fenster.getContentPane().add(abschicken);

	}

	public void actionPerformed(ActionEvent e) {

		if (e.getActionCommand().equals("Abschicken")) {

			System.out.println(fenster.bezugsnummer.getText());

		}

	}

}

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...