JTextfield

Liondary

Mitglied
Hey,
ich versuche grade eine List mit einem Objekt zu befüllen. Die Dinge die in das Objekt gehören sollen über ein Interface mit Hilfe von JTextfield eingegeben werden. Funktioniert auch alles soweit außer das die Dinge anscheinend nicht richtig im Objekt gespeichert werden, da wenn ich die einzelnen Dinge mit getter aus dem Objekt hervorrufe wird nur "null" ausgegeben... Kann mir da jemand helfen?

Hier mein Code:
Java:
package com.company;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.*;
import java.util.LinkedList;

public class Main implements ActionListener {

   JPanel Schalter, buttonPanel, Kontoerstellung;
   JButton erstellenButton, greifenButton, verlassenButton, ErstellenButton;
   JLabel Namensfrage, Jahresfrage, PINfrage;
   JTextField Namenseingabe, Jahreseingabe, PINeingabe;
   JFrame frame;
   List<Konto> KontenListe = new LinkedList<Konto>();
   Scanner scanner = new Scanner(System.in);
   static String KontoInhaber;
   int ErstellungsDatum;
   int PIN;
   int KontoNummer;
   int KontoStand;
   int ii = 1;

   public static void main(String[] args) { new Main(); }

   public Main() {
     begruessung();
   }

   public void begruessung() { createAndShowWindow(); }

   public void createAndShowWindow() {
     frame = new JFrame("Schalter");
     frame.setContentPane(this.createContentPane());
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setSize(435, 300);
     frame.setVisible(true);
   }

   public JPanel createContentPane() {
     Schalter = new JPanel();
     Schalter.setLayout(null);

     buttonPanel = new JPanel();
     buttonPanel.setLayout(null);
     buttonPanel.setLocation(10, 80);
     buttonPanel.setSize(435, 300);
     Schalter.add(buttonPanel);

     erstellenButton = new JButton("Neues Konto erstellen");
     erstellenButton.setLocation(0, 0);
     erstellenButton.setSize(200,30);
     erstellenButton.addActionListener(this);
     buttonPanel.add(erstellenButton);

     greifenButton = new JButton("Auf Konto zugreifen!");
     greifenButton.setLocation(200, 0);
     greifenButton.setSize(200, 30);
     greifenButton.addActionListener(this);
     buttonPanel.add(greifenButton);

     verlassenButton = new JButton("Verlassen");
     verlassenButton.setLocation(100, 40);
     verlassenButton.setSize(200, 30);
     verlassenButton.addActionListener(this);
     buttonPanel.add(verlassenButton);

     Schalter.setOpaque(true);

     return Schalter;
   }

   public void actionPerformed(ActionEvent e) {
     closeFrame();

     if (e.getSource() == erstellenButton) {
       erstellen();
     } else if (e.getSource() == greifenButton) {
       greifen();
     } else if (e.getSource() == verlassenButton) {
       // verlassen();}
     }
   }

   private void closeFrame() {
     frame.setVisible(false);
     frame.dispose();
   }

   public void erstellen() {
     kontoerstellung();
   }

   public void kontoerstellung() { createAndShowKontoerstellung(); }

   public void createAndShowKontoerstellung() {
     frame = new JFrame("Kontoerstellung");
     frame.setContentPane(this.createKontoerstellung());

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setSize(470, 600);
     frame.setVisible(true);
   }

   public JPanel createKontoerstellung() {
     Kontoerstellung = new JPanel();
     Kontoerstellung.setLayout(null);

     Namensfrage = new JLabel("Wie lautet ihr Name?");
     Namensfrage.setLocation(10, 0);
     Namensfrage.setSize(435, 50);
     Namensfrage.setHorizontalAlignment(0);
     Kontoerstellung.add(Namensfrage);

     Namenseingabe = new JTextField();
     Namenseingabe.setLocation(10,55);
     Namenseingabe.setSize(435,35);
     Namenseingabe.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent event) {
         KontoInhaber = Namenseingabe.getText();
       }
     });
     Kontoerstellung.add(Namenseingabe);

     Jahresfrage = new JLabel("Welches Jahr haben wir?");
     Jahresfrage.setLocation(10, 100);
     Jahresfrage.setSize(435,50);
     Jahresfrage.setHorizontalAlignment(0);
     Kontoerstellung.add(Jahresfrage);

     Jahreseingabe = new JTextField();
     Jahreseingabe.setLocation(10,155);
     Jahreseingabe.setSize(435,35);
     Jahreseingabe.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
         ErstellungsDatum = Integer.parseInt(Jahreseingabe.getText());
       }
     });
     Kontoerstellung.add(Jahreseingabe);

     PINfrage = new JLabel("Wie soll Ihr PIN lauten?");
     PINfrage.setLocation(10, 200);
     PINfrage.setSize(435,50);
     PINfrage.setHorizontalAlignment(0);
     Kontoerstellung.add(PINfrage);

     PINeingabe = new JTextField();
     PINeingabe.setLocation(10, 255);
     PINeingabe.setSize(435, 35);
     PINeingabe.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
         PIN = Integer.parseInt(PINeingabe.getText());
       }
     });
     Kontoerstellung.add(PINeingabe);

     ErstellenButton = new JButton("Erstellen");
     ErstellenButton.setLocation(165,355);
     ErstellenButton.setSize(120,35);
     ErstellenButton.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
         KontoNummer = ii;
         KontoStand = 100;
         KontenListe.add(new Konto(KontoInhaber, KontoStand, KontoNummer,ErstellungsDatum, PIN));
         ii++;
         closeFrame();
         begruessung();
       }
     });
     Kontoerstellung.add(ErstellenButton);
     Kontoerstellung.setOpaque(true);
     return Kontoerstellung;
   }

   public void greifen() {
     System.out.print("Wie lautet Ihre Kontonummer? ");
     KontoNummer = scanner.nextInt();
     System.out.print(KontenListe.get(KontoNummer-1).getKontoStand());
   }
}
 
Zuletzt bearbeitet von einem Moderator:

VfL_Freak

Top Contributor
Moin,

add 1) nutze bitte die Java-tags, so bekommt man ja Augenkrebs !!
add 2) wo genau funktioniert was nicht??
etwas genauere Angaben wären nett !

Gruß Klaus
 

Liondary

Mitglied
Hey Klaus,
1) tut mir Leid bin ganz neu hier... was sind Java-tags? Hoffe ich hab diesmal richtig gemacht.

2)

Java:
ErstellenButton = new JButton("Erstellen");
ErstellenButton.setLocation(165,355);
ErstellenButton.setSize(120,35);
ErstellenButton.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
     KontoNummer = ii;
     KontoStand = 100;
     KontenListe.add(new Konto(KontoInhaber, KontoStand, KontoNummer,ErstellungsDatum, PIN));
     ii++;
     closeFrame();
     begruessung();
   }
});
Kontoerstellung.add(ErstellenButton);

Ich will das wenn man diesen Button klickt KontoInhaber, KontoStand, KontoNummer, ErstellungsDatum und PIN an ein neues Konto gegeben werden und dieses Konto dann in die Liste geschrieben wird. Was KontoInhaber, ErstellungsDatum und PIN sind, steht in den JTextfields dadrüber.

Wenn ich dann aber mit get auf das Konto was ich erstellt habe zugreife, existiert das Konto zwar aber KontoInhaber, KontoStand, ErstellungDatum und PIN sind alle 0.

Gruß Leo
 
Zuletzt bearbeitet von einem Moderator:

Liondary

Mitglied
Das hier ist das Objekt "Konto" :

Java:
package com.company;


public class Konto {

    private String KontoInhaber;
    private int KontoStand;
    private int KontoNummer;
    private int NeuerKontoStand;
    private int ErstellungsDatum;
    private int Jahr;
    private int PIN;

    public Konto (String _KontoInhaber, int _KontoStand, int _KontoNummer, int _ErstellungsDatum, int _PIN) {

        KontoInhaber = _KontoInhaber;
        KontoStand = _KontoStand;
        KontoNummer = _KontoNummer;
        ErstellungsDatum = _ErstellungsDatum;
        PIN = _PIN;

    }

    public String getKontoInhaber() {

        return KontoInhaber;
    }

    public String setKontoInhaber(String NeuerKontoInhaber) {

        KontoInhaber = NeuerKontoInhaber;

        return KontoInhaber;
    }

    public int getKontoStand() {

        return KontoStand;
    }

    public int setKontoStand(int KontoStand, int Einzahlung) {

        NeuerKontoStand = KontoStand + Einzahlung;

        return NeuerKontoStand;

    }

    public int getKontoNummer() {

        return KontoNummer;
    }

    public int setKontoNummer(int NeueKontoNummer) {

        KontoNummer = NeueKontoNummer;

        return KontoNummer;

    }

    public int getErstellungsDatum() {

        return ErstellungsDatum;
    }

    public int getPIN() {

        return PIN;
    }


}

Edit: KontoNummer und KontoStand werden korrekt angezeigt. Nur KontoInhaber, ErstellungsDatum und PIN, also die Einträge die ich in den darüber liegenden JTextfields eingebe, werden als 0 ausgegeben.
 

Thallius

Top Contributor
Es macht ja auch keinen Sinn, dass Du die Variablen KontoInhaber etc nur setzt wenn das Textfield eine Action auslöst. U.U. tut sie das nämlich gar nicht. Lies die Werte aus den Textfeldern mit getText() aus.
 

Joose

Top Contributor
Java:
     Jahreseingabe.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
         ErstellungsDatum = Integer.parseInt(Jahreseingabe.getText());
       }
     });
     PINeingabe.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
         PIN = Integer.parseInt(PINeingabe.getText());
       }
     });
     ErstellenButton.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
         KontoNummer = ii;
         KontoStand = 100;
         KontenListe.add(new Konto(KontoInhaber, KontoStand, KontoNummer,ErstellungsDatum, PIN));
         ii++;
         closeFrame();
         begruessung();
       }
     });
Edit: KontoNummer und KontoStand werden korrekt angezeigt. Nur KontoInhaber, ErstellungsDatum und PIN, also die Einträge die ich in den darüber liegenden JTextfields eingebe, werden als 0 ausgegeben.

Wann glaubst du werden die ActionListener vom JTextField denn ausgeführt? Hast du kontrolliert ob die jemals ausgeführt werden? Was würde passieren wenn diese nie ausgeführt werden?

Anmerkung zu deinem Code:
Instanzvariablen und Parameter werden immer in lowerCamelCase geschrieben, nicht in UpperCamelCase!!
Eine setter Methode setzt einen Wert daher sollte man hier keinen Wert zurückgeben. Dazu hat man ja den entsprechenden Getter!
 

Liondary

Mitglied
Perfekt! Ich danke euch allen! Es funktioniert jetzt :)

Java:
 public JPanel createKontoerstellung() {

        Kontoerstellung = new JPanel();
        Kontoerstellung.setLayout(null);

        Namensfrage = new JLabel("Wie lautet ihr Name?");
        Namensfrage.setLocation(10, 0);
        Namensfrage.setSize(435, 50);
        Namensfrage.setHorizontalAlignment(0);
        Kontoerstellung.add(Namensfrage);

        Namenseingabe = new JTextField();
        Namenseingabe.setLocation(10,55);
        Namenseingabe.setSize(435,35);

        Kontoerstellung.add(Namenseingabe);

        Jahresfrage = new JLabel("Welches Jahr haben wir?");
        Jahresfrage.setLocation(10, 100);
        Jahresfrage.setSize(435,50);
        Jahresfrage.setHorizontalAlignment(0);
        Kontoerstellung.add(Jahresfrage);

        Jahreseingabe = new JTextField();
        Jahreseingabe.setLocation(10,155);
        Jahreseingabe.setSize(435,35);

        Kontoerstellung.add(Jahreseingabe);

        PINfrage = new JLabel("Wie soll Ihr PIN lauten?");
        PINfrage.setLocation(10, 200);
        PINfrage.setSize(435,50);
        PINfrage.setHorizontalAlignment(0);
        Kontoerstellung.add(PINfrage);

        PINeingabe = new JTextField();
        PINeingabe.setLocation(10, 255);
        PINeingabe.setSize(435, 35);

        Kontoerstellung.add(PINeingabe);

        ErstellenButton = new JButton("Erstellen");
        ErstellenButton.setLocation(165,355);
        ErstellenButton.setSize(120,35);
        ErstellenButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                KontoInhaber = Namenseingabe.getText();
                PIN = Integer.parseInt(PINeingabe.getText());
                ErstellungsDatum = Integer.parseInt(Jahreseingabe.getText());
                KontoNummer = ii;
                KontoStand = 100;
                KontenListe.add(new Konto(KontoInhaber, KontoStand, KontoNummer,ErstellungsDatum, PIN));
                ii++;
                closeFrame();
                begruessung();
            }
        });
        Kontoerstellung.add(ErstellenButton);

        Kontoerstellung.setOpaque(true);

        return Kontoerstellung;
    }

@Joose Danke für den Hinweis. Ich wird in Zukunft drauf achten :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
S Möglichkeit, mit g.draw etwas vor ein JTextfield zu „zeichnen“? Java Basics - Anfänger-Themen 7
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
S ArrayList Username und passwort mit JTextField eingaben abgleichen Java Basics - Anfänger-Themen 10
B Variablen Int Variabel in JTextField ändern Java Basics - Anfänger-Themen 2
mhmt_03 dafür sorgen, dass im JTextfield nur zahlen eingebbar sind Java Basics - Anfänger-Themen 9
M JTextField nur Zahleneingaben zulassen, eingabe sperren Java Basics - Anfänger-Themen 24
E JButton und JTextField Java Basics - Anfänger-Themen 1
J JTextField Bezeichnung als Variable Java Basics - Anfänger-Themen 3
M Von einem JTextField Doublewerte entgegennehmen Java Basics - Anfänger-Themen 2
M JTextField in ArrayList speichern Java Basics - Anfänger-Themen 4
M Input/Output JTextField Eingabe in String Variable speichern Java Basics - Anfänger-Themen 15
G JTextField per Button speichern und an andere Klasse übergeben Java Basics - Anfänger-Themen 2
D Klassen JTextField wird nur zu 50% angezeigt. Java Basics - Anfänger-Themen 15
F JTextField Kursiv und Fett machen Java Basics - Anfänger-Themen 4
M Input/Output Java Swing: Prüft ob Text aus JTextField ausschließlich Integer enthält Java Basics - Anfänger-Themen 15
M JTextField blitzt immer wieder nur auf Java Basics - Anfänger-Themen 12
CptK Interface JTextField: Action mit Enter ausführen Java Basics - Anfänger-Themen 16
K Methoden JTExtField mit Array erzeugen Java Basics - Anfänger-Themen 13
N Abfragen eines Textes aus einem JTextField in Java, Funktion, CardLayout, Java Basics - Anfänger-Themen 2
J Erste Schritte Wert aus JTextField zurückgeben Java Basics - Anfänger-Themen 6
F Aus einer anderen Klasse auf ein JTextField zugreifen Java Basics - Anfänger-Themen 17
P Cursor in JTextField setzen Java Basics - Anfänger-Themen 11
F Variablen JTextField-Inhalt kann nicht mit String abgeglichen werden Java Basics - Anfänger-Themen 2
F Interface JTextField am Anfang unsichtbar o_o Java Basics - Anfänger-Themen 3
D Klassen Wert aus JTextfield in JLabel (andere Klasse) darstellen. Java Basics - Anfänger-Themen 60
D JButton soll Farbe von JTextfield ändern Java Basics - Anfänger-Themen 5
S Variable in JTextField soll immer um 5 zunehmen Java Basics - Anfänger-Themen 8
B Interface JTextField Eingabe als String verwenden Java Basics - Anfänger-Themen 3
K OOP Mit anderer Klasse auf JTextField zugreifen Java Basics - Anfänger-Themen 5
W JTextField-Objekt liest Umlaute mit falschen Zeichen ein Java Basics - Anfänger-Themen 5
Z Fürge nur ein JTextField ein und danach wird nichts mehr angezeigt Java Basics - Anfänger-Themen 3
S JTextField zu ArrayList hinzufügen Java Basics - Anfänger-Themen 3
Z Vector in jTextField/jLabel darstellen Java Basics - Anfänger-Themen 4
Z JTextField - getText() Methode abbrechen? Java Basics - Anfänger-Themen 8
P jTextField - Auslesen, in Variablen speichern, eingeben... Java Basics - Anfänger-Themen 7
J Methoden JTextArea auslesen und in JTextfield ausgeben Java Basics - Anfänger-Themen 13
M Double-Ausgabe in JTextField fehlerhaft Java Basics - Anfänger-Themen 2
U Inhalt von JTextfield an andere Klasse weitergeben Java Basics - Anfänger-Themen 13
I JTextfield[] innerhalb eines Itemlistener aufrufen Java Basics - Anfänger-Themen 2
S Einzelne Buchstaben aus Jtextfield in array Java Basics - Anfänger-Themen 2
S Verhalten von JTextField in einem JTabbedPane (Register) Java Basics - Anfänger-Themen 6
L JTextField/Listener Input Problem Java Basics - Anfänger-Themen 2
G JTextField, DocumentListener, Fehler bei setText() Java Basics - Anfänger-Themen 3
S Input/Output GUI Eingabe in JTextfield in Variable speichern Java Basics - Anfänger-Themen 7
C JTextField füllen Java Basics - Anfänger-Themen 5
C jtextfield und jtable Java Basics - Anfänger-Themen 34
K JTextField in ein Spiel einfügen Java Basics - Anfänger-Themen 2
K Encoding von JTextfield Java Basics - Anfänger-Themen 2
X JTable mit Inhalten aus JTextField o.ä. füllen Java Basics - Anfänger-Themen 4
P Klassen JTextfield aus anderer Klasse herausfüllen Java Basics - Anfänger-Themen 12
K JTextField auslesen, in int umwandeln und in einer anderen Klasse als Zähler verwenden Java Basics - Anfänger-Themen 3
M Datumsformat in JTextfield Java Basics - Anfänger-Themen 10
S JTextField nervt rum... Java Basics - Anfänger-Themen 4
B JTextField Java Basics - Anfänger-Themen 5
D Durch Button klick wert in JTextField einfügen Java Basics - Anfänger-Themen 5
J Verknüpfung von JButton to JTextField Java Basics - Anfänger-Themen 4
B JTextField Java Basics - Anfänger-Themen 5
C Problem mit JTextField Java Basics - Anfänger-Themen 8
A Klassen JTextField eigtl leer aber es werden Methoden ect. angezeigt Java Basics - Anfänger-Themen 9
P Datentypen String auf JTextField wird zu Char-Array und anschließend zu int Java Basics - Anfänger-Themen 12
L JTextField auslesen mit getText() wie abspeichern? Java Basics - Anfänger-Themen 2
D jtextField Ausgabe double Java Basics - Anfänger-Themen 4
D JTextField verwenden ohne Eingabe einer Variable Java Basics - Anfänger-Themen 4
J GUI - JTextField Anordnung Java Basics - Anfänger-Themen 2
S nur Buchstaben in JTextField Java Basics - Anfänger-Themen 3
S JTextfield Auswertung mit FocusListener Java Basics - Anfänger-Themen 7
M Hilfe JTextfield Ergebnis Java Basics - Anfänger-Themen 2
B GUI- JTextField - Übung Java Basics - Anfänger-Themen 5
M OOP Wie greife ich auf JTextField zu? Java Basics - Anfänger-Themen 2
P Eingabe aus JTextField/Area an eine andere Klasse übergeben. Java Basics - Anfänger-Themen 2
M Input/Output JFrame mit JButton und JTextfield Java Basics - Anfänger-Themen 114
F GUI JTextField aktualisieren Java Basics - Anfänger-Themen 3
B jTextField bei Enter eingabe absenden? Java Basics - Anfänger-Themen 2
S JTextField leeren ohne setText("")? Java Basics - Anfänger-Themen 3
A fire button on JTextField Enter Java Basics - Anfänger-Themen 2
G JTextField() Anzeige - if-Anweisungen Java Basics - Anfänger-Themen 2
R Erste Schritte codecopieren von Editor nach Eclipse / JTextField Java Basics - Anfänger-Themen 4
L Zeichen in jTextField markieren Java Basics - Anfänger-Themen 2
M Text auf JTextField auslesen per Button Java Basics - Anfänger-Themen 4
L JTextField getText() gibt immer null zurück Java Basics - Anfänger-Themen 10
L Null Pointer Exception bei Focus Event bei einem JTextField Java Basics - Anfänger-Themen 2
C Ausgewähltes Element einer JCombobox in JTextField Java Basics - Anfänger-Themen 3
H Prüfen welches JTextfield ausgewählt/selektiert ist? Java Basics - Anfänger-Themen 7
B Input/Output jTextField - KeyEvent - Zeichen soll nicht erscheinen Java Basics - Anfänger-Themen 6
D JPasswordField - JTextField Java Basics - Anfänger-Themen 5
J JTextfield mit Enter leeren Java Basics - Anfänger-Themen 3
H JtextField auslesen und in JLable einfuegen Java Basics - Anfänger-Themen 7
D JTextField anstatt Jbuttons Java Basics - Anfänger-Themen 9
V Sonderzeichen als eigene "Operatoren" im JTextField Java Basics - Anfänger-Themen 4
S mit eigener Klasse JTextField ändern Java Basics - Anfänger-Themen 3
M JTextField durch Button auslösen Java Basics - Anfänger-Themen 9
J JLabel mit Hilfe von JTextfield benennen Java Basics - Anfänger-Themen 7
J Keylistener aber wie jTextField auswahl? Java Basics - Anfänger-Themen 3
M JTextField Java Basics - Anfänger-Themen 7
O JTextField Schriftgröße ändern Java Basics - Anfänger-Themen 1
J Nur ein Komma in JTextField zulassen... Java Basics - Anfänger-Themen 9
C Problem mit JPopupMenu, JTextField und Keylistener Java Basics - Anfänger-Themen 2
S JTextField an SQL mit -> Kommazahlen Java Basics - Anfänger-Themen 4
K JTextField auslesen, wenn Enter gedrückt.. Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben