OOP Mit anderer Klasse auf JTextField zugreifen

Krösus

Mitglied
Ich sitze seit einiger Zeit an einer kleinen Adressverwaltung zwecks Übung, aber leide komme ich nicht weiter und so langsam verzweifel ich ;).

Ich habe einen Button names Eintragen, wenn dieser geklickt wird soll der Text, welcher im Textfeld Vorname steht in einem String gespeichert werden. Mein Problem liegt im Zugriff. Ich komm einfach nicht an das Textfeld ran. Er gibt mir immer die Fehlermeldung: " ... cannot be resolved or is not a field".

Ich hab einige Dinge aus dem Code gelöscht, damit er nicht so lang wird.

Java:
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class GUIAdressen {
   
    public static void addComponentsToPane(Container pane) {
        pane.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
   
   
    JButton button_eintragen, button_weiter, button_zurueck;
    JTextField text_vorname, text_nachname;
    JLabel label_vorname, label_nachname, label_vorname_ausgabe, label_nachname_ausgabe;
   
    pane.setLayout(new GridBagLayout());
    GridBagConstraints c = new GridBagConstraints();
   
    c.insets = new Insets(2,2,2,2);
   
    button_eintragen = new JButton("Eintragen");
    c.fill = GridBagConstraints.HORIZONTAL;
    c.gridx = 0;
    c.gridy = 0;
    pane.add(button_eintragen, c);
    ButtonListenerEintragen bl_button_eintragen = new ButtonListenerEintragen();
    button_eintragen.addActionListener(bl_button_eintragen);
   
    label_vorname = new JLabel("Vorname: ");
    c.fill = GridBagConstraints.HORIZONTAL;
    c.gridx = 0;
    c.gridy = 1;
    pane.add(label_vorname, c);
   
    text_vorname = new JTextField(1);
    c.fill = GridBagConstraints.HORIZONTAL;
    c.gridwidth = 3;
    c.gridx = 1;
    c.gridy = 1;
    pane.add(text_vorname, c);
   
    label_vorname_ausgabe = new JLabel();
    c.gridx = 1;
    c.gridy = 3;
    pane.add(label_vorname_ausgabe, c);
      
    }
   
    static class ButtonListenerEintragen implements ActionListener{
       
        private GUIAdressen gui;
       
        public void bsp(GUIAdressen gui) {
            this.gui=gui;
        }
       
//Textfeld zu String
        public void actionPerformed(ActionEvent e) {
            String textfeld = gui.text_vorname.getText();    
        }
       
    }

   
       
    public static void createAndShowGUI() {
        JFrame frame = new JFrame("Adressverwaltung");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
        addComponentsToPane(frame.getContentPane());
       
        frame.pack();
        frame.setVisible(true);
    }
   
    public static void main (String[] args) {
       
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}
 

Robat

Top Contributor
Ich würde dir raten in deine GuiAdressen Klasse eine Getter Methode für den Text des Textfeldes zu erstellen, die auf Public setzten und dann in deiner Actionlistenere klasse mittels gui.getNachname().

Ist das ganze mit einem Builder gemacht? Die machen nämlich meiner Meinung nach für Neulinge keinen schönen Quellcode. Weiß ja nicht wie lange du dich schon damit beschäftigst
 

Krösus

Mitglied
Ich hab jetzt etwas rumprobiert, um deine vorgeschlagene Methode umzusetzen, aber es wird nicht wirklich besser...hier mal meine letzte Lösung. Diese Methode steht jetzt in der Klasse GUIAdressen:

Java:
    public static void getText(Container pane) {
        String text;
        text = pane.text_vorname.getText();
    }

Gibt mir immer noch den Fehler "...cannot be resolved..."

Ich benutze keinen Builder. Ich versuch mich schon etwas länger an Layouts und hab dafür eine GridBagLayoutDemo von oracle.com genommen und angepasst


oder auch das hier:

Java:
    public static String getText() {
        String text = text_vorname.getText();
       
        return text;
    }


Mir fehlt irgendwo entscheidendes Grundlagenwissen
 

Robat

Top Contributor
Also ich habe mir jetzt mal deine Quellcode kopiert und genauer angesehen.
Du konntest deshalb nicht auf dein JTextField zugreifen, weil es nicht public gesetzt war bzw gar nicht erst als globale Variable definiert war. Lange rede kurzer Sinn du konntest die Vars nur in der Methode addComponentsToPane verwenden.

Versuch mal folgendes (hat bei mir den Error behoben):

Java:
// imports
// ..

public class GUIAdressem
{
       // Globale Variablen
       // hier definierst du jetzt alle variablen aus deiner
      // addComponentsTOPane Methode
      // Bsp:
      public static JTextField text_vorname;
  
     public static void addCOmponentsToPane(Container pane)
      {
         //...
      }
}

Bevor du dich an GUI Programmierung ranwagst, solltest du dir erstmal die Basics aneignen. Dazu gehört auch, wann ich eine Variable local und wann global definiere. Genauso wann ich eine Variable public, private, protected mache. Noch ein Punkt ist die Objektorientiere Programmierung mit der Trennung nach MVC Schema.
Nimm dir also lieber noch mal ein Buch oder ein Tutorial mit den Java Basics zur Hand bevor du hier weiter machst.
PS: Nicht böse gemeint :)
 

Krösus

Mitglied
Oh...eigentlich ganz simpel :D
Danke für deine Hilfe Robat. Es funktioniert jetzt.

Die von dir angesprochenen Sachen werde ich mir nochmal anschauen und nehm dir das auch nicht übel ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Klassen JTextfield aus anderer Klasse herausfüllen Java Basics - Anfänger-Themen 12
S Zugriff auf Inhalt JTextField aus anderer Klasse Java Basics - Anfänger-Themen 3
H eingabe jTextField in anderer Klasse prüfen Java Basics - Anfänger-Themen 5
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
J Fehler bei array aus anderer Klasse Java Basics - Anfänger-Themen 3
R TreeSet Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 8
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
KogoroMori21 Objektvariable anderer Klasse übernehmen, Getter/Setter Java Basics - Anfänger-Themen 11
M Klassen Methode in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
M Methode in anderer Klasse aufrufen Java Basics - Anfänger-Themen 5
B Mit methode Objekt aus anderer Klasse erstellen Java Basics - Anfänger-Themen 6
M Klassen Klasse aus anderer Klasse "aufrufen" Java Basics - Anfänger-Themen 2
S Java Array Länge aus anderer Klasse lesen Java Basics - Anfänger-Themen 1
I Eigenschaften von Position aus anderer Klasse übernehmen Java Basics - Anfänger-Themen 17
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
CptK Interface Klasse Frame (extends JFrame) aus anderer Klasse schließen Java Basics - Anfänger-Themen 7
T OOP GUI aus anderer Klasse updaten Java Basics - Anfänger-Themen 6
A JButton in anderer Klasse bearbeiten. Java Basics - Anfänger-Themen 2
deatzi Wert aus anderer Klasse lesen Java Basics - Anfänger-Themen 7
J Methoden Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 12
S Eingabe in anderer Klasse verwenden Java Basics - Anfänger-Themen 3
F Interface JButton von anderer Klasse hinzufügen Java Basics - Anfänger-Themen 2
L Klassen Methode aus anderer Klasse Java Basics - Anfänger-Themen 13
M Klassen Methode aus anderer Klasse nicht aufrufbar Java Basics - Anfänger-Themen 11
J Button in anderer Klasse ändern Java Basics - Anfänger-Themen 3
E Referenzvariable in anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
E Klassen Referenzvariable in anderer Klasse aufrufen. Java Basics - Anfänger-Themen 1
M Neu instanzierte Klasse übernimmt Werte von anderer Instanz Java Basics - Anfänger-Themen 4
A Variablen In anderer Klasse auf Objekte von JFrame zugreifen Java Basics - Anfänger-Themen 1
magdaStone Logikproblem Umschalten von booleans in anderer Klasse Java Basics - Anfänger-Themen 0
F Methode anderer Klasse aufrufen Java Basics - Anfänger-Themen 1
N Auf TextFeld aus anderer Klasse zugreifen ohne es zu übergeben Java Basics - Anfänger-Themen 3
P Aufruf Methode anderer Klasse Java Basics - Anfänger-Themen 5
G Variablen Verwendung von Variablen in anderer Klasse Java Basics - Anfänger-Themen 6
1 Arraylist in anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
S Klassen Instanz anderer Klasse raus geben Java Basics - Anfänger-Themen 1
J KeyListener aus anderer Klasse bereitet Probleme Java Basics - Anfänger-Themen 1
B Klassen Auf Instanz anderer Klasse zugreifen Java Basics - Anfänger-Themen 1
D Methoden g.setColor funktioniert nicht bei Methodenaufruf in anderer Klasse Java Basics - Anfänger-Themen 1
B Liste in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
F ArrayListen auf anderer Klasse implementieren Java Basics - Anfänger-Themen 4
I Rückgabewert einer Methode in anderer Klasse verwenden Java Basics - Anfänger-Themen 2
X Gwt DnD, Drag auf Droparea in anderer Klasse? Java Basics - Anfänger-Themen 0
N Problem mit Swing Textfeld und Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 6
T Vererbung Variable aus anderer Klasse verwenden Java Basics - Anfänger-Themen 8
M Dynamische Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
T [Erledigt] Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 0
R Hashmap in anderer Klasse nicht benutzbar Java Basics - Anfänger-Themen 1
Jackii Globale Variable aus anderer Klasse ändern... Java Basics - Anfänger-Themen 4
L Erste Schritte Methode aus anderer Klasse verwenden Java Basics - Anfänger-Themen 16
W Frame in anderer Klasse anzeigen lassen Java Basics - Anfänger-Themen 1
T Variable aus anderer Klasse Java Basics - Anfänger-Themen 3
G ArrayList in anderer Klasse verwenden Java Basics - Anfänger-Themen 31
C Timer aus anderer Klasse stoppen/starten Java Basics - Anfänger-Themen 3
Sogomn JLabel in anderer Klasse zum JFrame hinzufügen Java Basics - Anfänger-Themen 2
G Objekt wie Objekt anderer Klasse behandeln Java Basics - Anfänger-Themen 4
K Vererbung Variable aus anderer Klasse nutzen Java Basics - Anfänger-Themen 3
G Klassen Richtig auf jTextArea aus anderer Klasse zugreifen? Java Basics - Anfänger-Themen 3
A Klassen Klasse in anderer Klasse aufrufen Java Basics - Anfänger-Themen 5
C Klassen Zugriff auf Objekt anderer Klasse Java Basics - Anfänger-Themen 8
J Button in extra Klasse festlegen und in anderer Klasse einfügen? Java Basics - Anfänger-Themen 3
J GUI Button Klasse in anderer Klasse einfügen Java Basics - Anfänger-Themen 3
G Methodenaufruf anderer Klasse Java Basics - Anfänger-Themen 18
J Threads Variablen Wert aus anderer Klasse auslesen Java Basics - Anfänger-Themen 4
A Array aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 9
N GUI aus anderer Klasse beziehen Java Basics - Anfänger-Themen 21
J Variablen Array aus anderer Klasse auslesen-Wie verhindert man eine NullPointerException? Java Basics - Anfänger-Themen 4
F Erste Schritte String von anderer Klasse auf TextArea von erster Klasse Java Basics - Anfänger-Themen 12
C Problem mit Zugriff auf Variable bzw. get-Methode in anderer Klasse Java Basics - Anfänger-Themen 2
A String aus anderer Klasse in JTextArea einfügen Java Basics - Anfänger-Themen 7
A Methode aus anderer Klasse Java Basics - Anfänger-Themen 5
M AWT Applet - Button aus anderer Klasse abfragen Java Basics - Anfänger-Themen 4
J "public int x" - Zugriff von anderer Klasse (selbes Package) nicht möglich?! Java Basics - Anfänger-Themen 4
A Bild erstellen in anderer Klasse Java Basics - Anfänger-Themen 2
X OOP Methoden und Variablen in anderer Klasse verwenden Java Basics - Anfänger-Themen 5
I Konstruktor in anderer Klasse nutzen Java Basics - Anfänger-Themen 11
U Factory in anderer Klasse Java Basics - Anfänger-Themen 2
I Collections Arraylist in anderer Klasse aufrufen Java Basics - Anfänger-Themen 6
H Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 7
S KeyListener aus anderer Klasse hinzufügen Java Basics - Anfänger-Themen 19
c_sidi90 Zugriff auf Swingkomponente aus anderer Klasse Java Basics - Anfänger-Themen 12
S Event aus anderer Klasse als Auslöser Java Basics - Anfänger-Themen 5
C Objekt X über Methode aus anderer Klasse verändert Java Basics - Anfänger-Themen 3
I auf Textfeld aus anderer Klasse heraus zugreifen Java Basics - Anfänger-Themen 2
L Methodenaufruf aus anderer Klasse Java Basics - Anfänger-Themen 5
I Von einer Methode eines Objektes auf Attribut eines Objektes anderer Klasse zugreifen Java Basics - Anfänger-Themen 4
S Main-Methode aus anderer Klasse heraus starten Java Basics - Anfänger-Themen 8
E ActionListener in anderer Klasse erkennen Java Basics - Anfänger-Themen 13
S Zugriff auf Methode anderer Klasse Java Basics - Anfänger-Themen 6
F Tabelle in anderer Klasse füllen Java Basics - Anfänger-Themen 9
B Wert einer String Variable an andere String Variable in anderer Klasse uebergeben Java Basics - Anfänger-Themen 5
T Datentypen boolean von anderer klasse in hauptklasse übertragen Java Basics - Anfänger-Themen 2
A drawImage auf JFrame in anderer Klasse Java Basics - Anfänger-Themen 4
J Auf ActionEvents in "anderer" Klasse reagieren Java Basics - Anfänger-Themen 2
U Anderer Klasse ein Obejkt einer Klasse übergeben Java Basics - Anfänger-Themen 5
M LinkedList in anderer Klasse nutzen Java Basics - Anfänger-Themen 4
M Probleme beim Aufruf von Listener in anderer Klasse Java Basics - Anfänger-Themen 9
R Textlabel aus anderer Klasse ansprechen - Konstruktor notwendig? Java Basics - Anfänger-Themen 7
T Aufrufen von get-Methode aus anderer Klasse (absolute Anfängerfrage) Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben