NetBeans Flüsterpost-Problem

gerpara

Mitglied
Hallo zusammen,

ich habe gerade ein ganz komisches Problem. Ich arbeite an einem Tool zur Finanzplanung und habe dort mehrere Klassen (Fenster - für das GUI, Methoden.. ,Daten ..).

In der Klasse Fenster befindet sich ein JTextField.
Führe ich innerhalb diser Klasse
Java:
System.out.println(JTextField.getText());
aus, so steht wie gewünscht der Inhalt da.
Führe ich aber in einer anderen Klasse diesen Befehl aus, kommt irgendwie nichts an.
Java:
Fenster f = new Fenster();
System.out.println(f.JTextField.getTet());
-> leere Zeile

Nun.. hat jemand von euch schonmal so ein Problem gehabt und/oder kann mir damit weiterhelfen?
 

Final_Striker

Top Contributor
Ich würde mal sagen, dass sind zwei verschiedene Textfelder und haben deshalb auch einen unterschiedlichen Inhalt.

Etwas mehr Code wäre aber sicherlich hilfreicher.
 

gerpara

Mitglied
Ich würde mal sagen, dass sind zwei verschiedene Textfelder und haben deshalb auch einen unterschiedlichen Inhalt.

Das war auch mein erster Gedanke, scheint aber nicht der Fall zu sein, da auch radioButtons kein "Ergebnis" liefern.

Hier mal das ganze mal ausführlicher:

Es gibt eine Klasse Fenster1 in der die GUI-Elemente liegen. Die Klasse Methoden benutze ich um Methoden aller Art zu sammeln. In der Klasse Daten lege ich alle möglichen Variablen und so rein.

Das wichtigste aus der Klasse Fenster1:

Java:
private void buttonStartEintragenActionPerformed(java.awt.event.ActionEvent evt) {                                                     
    Methoden m = new Methoden();    //wird erst hier erzeugt, da ich sonst in einem stackoverflow ende
    m.makeEntry();
} 

...

    private javax.swing.ButtonGroup buttonGroupStartEintrag;
    private javax.swing.JButton buttonStartEintragen;
...
    public javax.swing.JRadioButton radioStartAusgabe;
    public javax.swing.JRadioButton radioStartEinnahme;
    public javax.swing.JTextField textStartBetrag;
    public javax.swing.JTextField textStartBezeichnung;
    public javax.swing.JTextField textStartDatum;

Dann hier die Funktion makeEntry aus der Klasse Methoden:

Java:
    public void makeEntry() {   

            Daten d = new Daten();
            Fenster1 f = new Fenster1();
            
            int e = d.dataLastEntry; //Wievielter Eintrag

            /*
            * Überprüfen auf Fehler in der Eingabe
            * 1. radioButton - keiner aktiviert?
            * 2. Betrag und Bezeichnung angegeben
            */
            if(!f.radioStartAusgabe.isSelected() && !f.radioStartEinnahme.isSelected()) {      //Überprüfen auf Fehler in der Eingabe
                // TODO - Warnung wegen radioButtons
            } else if(isTextEmpty(f.textStartBezeichnung) || isTextEmpty(f.textStartBetrag)){
                // TODO - Warnung wegen JTextFields
            }
            /*
            * Typ abrufen - Ausgabe/Einnahme
            */
            if(f.radioStartAusgabe.isSelected()) {
                d.data[0][e] = "Ausgabe";
            } else if (f.radioStartEinnahme.isSelected()) {
                d.data[0][e] = "Einnahme";
            } else {
                // TODO - radioBox Fehlermeldung
            }

            /*
            * Bezeichnung abrufen
            */
            d.data[1][e] = f.textStartBezeichnung.getText();

            /*
            * Betrag abrufen
            */
            d.data[2][e] = f.textStartBetrag.getText();

            d.dataLastEntry = e++;

    }  //makeEntry

...

    private boolean isTextEmpty(JTextField t) { // Überprüfung ob angegebens JTextField leer ist
        boolean temp = false;
        String tempString = "";
        tempString = t.getText();
        if(tempString.length()<1) {
            temp = true;
            System.out.println("TextEmpty at " + t.getName());
        }
        return temp;
    }

Und hier noch die Daten:

Java:
public class Daten {

    int dataLength = 10;  //später noch variabel machen
    int dataLastEntry = 0;  //den hier auch
    
    /*
     * Matrix um Einträge zu speichern; alles Strings
     * 
     * x-Werte:
     * 0 - Ausgabe/Einnahme
     * 1 - Bezeichnung
     * 2 - Betrag
     */
    String[][] data = new String [3][dataLength];  
}



So.. fügt man ein System.out.println() mit Bezug auf ein beliebiges TextFeld in 1. der Klasse Fenster1 und 2. in der Klasse Methoden ein, dann kommt 1. der Inhalt des TextFeldes und 2. eine leere Zeile. Das soll aber nicht der Fall sein.

und Marcinek: Ich hab das Problem meiner kleinen Schwester erklärt und bin dann auf den Namen gekommen. Nächstes Mal werde ich es präziser machen ;)
 
M

Marcinek

Gast
Wo ist die Methode
Code:
makeEntry()
implementiert? Und wann wird sie aufgerufen?

How ever. Du machst in der Methode new Fesnter(). Und Visible wird es nirgents gemacht. Wie sollen dann die Felder da drin besetzt sein, durch eine Userengabe?

Naja der Denkfehler wird wohl daher kommen, dass du die Methode getText() aufrufen willst und diese ist nunmal ein Attribut eines Objekts. Und da möchte Java erst ein Objekt von haben.

Was du eher hier haben möchtest ist doch das bereits offene Fenster.

und Marcinek: Ich hab das Problem meiner kleinen Schwester erklärt und bin dann auf den Namen gekommen. Nächstes Mal werde ich es präziser machen

Verstehe ich nicht, ist aber auch egal.
 

gerpara

Mitglied
ok, eines habe ich euch noch verschwiegen, nämlich die MainClass:

Java:
public class Haushaltsbuch {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
           Fenster1 window = new Fenster1();
           window.setVisible(true);
    }
}

makeEntry ist in hier implementiert (1. Codeschnipsel):
sie wird aufgerufen wenn der anwender auf einen Button klickt, nachdem er ein paar werte eingetragen hat. wenn du willst kann ich auch noch einen screenshot machen.

Java:
private void buttonStartEintragenActionPerformed(java.awt.event.ActionEvent evt) {                                                     
    Methoden m = new Methoden();    //wird erst hier erzeugt, da ich sonst in einem stackoverflow ende
    m.makeEntry();
}

Naja der Denkfehler wird wohl daher kommen, dass du die Methode getText() aufrufen willst und diese ist nunmal ein Attribut eines Objekts. Und da möchte Java erst ein Objekt von haben.

Das könnte es sein. Aber wie genau muss ich dann dieses Objekt erstellen um es aus einer anderen Klasse abrufen zu können?
Mir scheint als wäre es (zumindest innerhalb der Klasse Fenster1 schon so). Hier was aus dem automatisch generierten Code:

Java:
        buttonGroupStartEintrag = new javax.swing.ButtonGroup();
        radioStartAusgabe = new javax.swing.JRadioButton();
        radioStartEinnahme = new javax.swing.JRadioButton();
        textStartBezeichnung = new javax.swing.JTextField();
        textStartBetrag = new javax.swing.JTextField();
        buttonStartEintragen = new javax.swing.JButton();
 
Zuletzt bearbeitet:
M

Marcinek

Gast
Ja, es ist so wie ich gesagt habe.

du musst
Code:
m.makeEntry(this);
machen und die klasse Make Entry entsprechend erweitern.

Dann kannst du dadran getText() aufrufen und wirst die korrekten Werte erhalten.

Wenn du zwei mal new machst, hast du zwei disjunkte Objekte.
 

gerpara

Mitglied
ok, ich habe makeEntry jetzt so erweitert

Java:
    public void makeEntry(Fenster1 einFenster) {
...
            System.out.println("Zeile");
            System.out.println(einFenster.textStartBezeichnung.getText());
            System.out.println("Zeile");

im output kommt nun das hier:

Code:
Zeile
Test Bezeichnung
Zeile

Es scheint also zu funktionieren. Vielen Dank :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
Max246Sch Backtracking Problem Box Filler Allgemeine Java-Themen 6
NightVision402 VisualVM Startskript Problem Allgemeine Java-Themen 3
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
A Java modul Problem Allgemeine Java-Themen 4
D Read JSON File Problem Allgemeine Java-Themen 9
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
J Problem mit JasperReports Allgemeine Java-Themen 8
M log4j Problem mit jlink Allgemeine Java-Themen 19
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
N Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
C ArrayList Problem Allgemeine Java-Themen 3
kev34 nim-Spiel problem Allgemeine Java-Themen 1
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
G Welches Problem besteht bei den Typparametern? Allgemeine Java-Themen 5
temi Problem mit Aufrufreihenfolge bei Vererbung Allgemeine Java-Themen 3
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
T PIM basierend auf netbeans via AnyDesk Problem Allgemeine Java-Themen 3
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
Kirby.exe Verständnis Problem bei Rucksack Problem Allgemeine Java-Themen 6
B Eclipse-Lombok-Problem Allgemeine Java-Themen 19
I Input/Output ObjectOutputStream - Problem Allgemeine Java-Themen 7
1 Multiple Choice Knapsack- Problem Allgemeine Java-Themen 2
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
E Problem mit Gridlayout und Button Allgemeine Java-Themen 2
A Array Problem Allgemeine Java-Themen 8
bueseb84 Problem Allgemeine Java-Themen 0
S Problem mit Arrays Allgemeine Java-Themen 1
D Nullpointer Exception Problem Allgemeine Java-Themen 5
B Problem mit meinen Klassen Allgemeine Java-Themen 6
A HashMap Methode "get()"-Problem Allgemeine Java-Themen 28
J Problem beim Umstellen auf Java jdk 13 Allgemeine Java-Themen 3
J Problem bei Install java 13 Allgemeine Java-Themen 3
X Profitable Reise Problem Allgemeine Java-Themen 32
A Problem beim öffnen von Java-Installern Allgemeine Java-Themen 1
Dann07 Problem mit JavaMail API Allgemeine Java-Themen 26
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
L Klassen Algorithmus für das folgende Problem entwickeln? Allgemeine Java-Themen 30
J Clear-Problem Allgemeine Java-Themen 10
B Problem zu einem Java Projekt Allgemeine Java-Themen 6
S JFileChooser Problem Allgemeine Java-Themen 4
M Traveling Salesman - MST Heuristik Problem Allgemeine Java-Themen 4
J Traveling Salesman Problem Allgemeine Java-Themen 14
E Java Editor Problem mit 2er Exceptions Allgemeine Java-Themen 12
C code oder Bibliotheken für 2-Center Problem Allgemeine Java-Themen 4
M Salesman Problem - Bruteforce Algorithmus Allgemeine Java-Themen 23
S Methoden Problem mit NullPointerException Allgemeine Java-Themen 9
Javafan02 Problem mit if-clause Allgemeine Java-Themen 17
J Lombok Problem mit Konstruktoren bei Verberbung Allgemeine Java-Themen 1
kodela Event Handling Problem mit der Alt-Taste Allgemeine Java-Themen 16
W Threads Problem Allgemeine Java-Themen 15
D (Verständnis-)Problem mit Unterklasse Allgemeine Java-Themen 4
S Problem mit Generic bei unmodifiableCollection Allgemeine Java-Themen 4
S jserialcomm Problem Allgemeine Java-Themen 1
Flynn Thread-Problem... Allgemeine Java-Themen 2
J Generische Interface - Problem Allgemeine Java-Themen 3
G Problem beim GUI Allgemeine Java-Themen 9
L Applet Problem "security: Trusted libraries list file not found" ? Allgemeine Java-Themen 7
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
T Problem mit externen Datenbankzugriff über SSH Tunnel Allgemeine Java-Themen 4
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
S Java OpenOffice Problem mit Windows-Benutzerwechsel Allgemeine Java-Themen 19
K Threads RAM Problem Allgemeine Java-Themen 20
P Operatoren Problem mit Zähler in recursiver Schleife Allgemeine Java-Themen 2
C Int Problem Allgemeine Java-Themen 8
C J2V8 NodeJs Java Bride Problem und Frage!?!? Allgemeine Java-Themen 1
J Problem bei Hashmap Key-Abfrage Allgemeine Java-Themen 4
C Webseiten Programm problem Allgemeine Java-Themen 5
M LocalDate Problem Allgemeine Java-Themen 4
J "Problem Objektorientierung" Allgemeine Java-Themen 20
geekex Problem Meldung! Was tun?! Allgemeine Java-Themen 19
T Klassen Override Problem Allgemeine Java-Themen 7
L Unbekanntes Problem Allgemeine Java-Themen 1
FrittenFritze Problem mit einer JComboBox, Event temporär deaktivieren Allgemeine Java-Themen 11
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
F HTTPS Zertifikat Problem Allgemeine Java-Themen 3
M OpenCV KNearest Problem Allgemeine Java-Themen 0
Tommy Nightmare Project Euler: Problem 22 Allgemeine Java-Themen 2
C Abstrakte Klasse, lokale Variable-Problem Allgemeine Java-Themen 1
N Vererbung Design-Problem mit vorhandenen, von der Klasse unabhängigen Methoden Allgemeine Java-Themen 12
P Eclipse Projekt anlegen macht Problem Allgemeine Java-Themen 1
RalleYTN META-INF/services Problem Allgemeine Java-Themen 3
F Java Mail Problem: Authentifizierung wird nicht immer mitgeschickt Allgemeine Java-Themen 1
I Problem beim Aufrufen, von Objektmethoden/ -variablen Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben