JTextField

Status
Nicht offen für weitere Antworten.
C

charly

Gast
hallo Leute ich hoffe das ihr mir helfen könnt, wär wirklich sehr dankbar!!

Ich habe eine Eingabebox mit JTextField erstellt und meine Frage ist nun:

Wie kann ich sie so verwenden wie z.B den einfache JOptionPane.InputDialog das man das eingegebene in einen Datentyp speichern kann. Ich weiß nur das man mit getText() herauslesen kann was in dem Textfeld steht aber, das gilt schon bevor man etwas eingegeben hat.

Ich hoffe ihr versteht mein Problem und könnt mir mit einer Lösung helfen.

Danke schon im voraus!
 

K-Man

Bekanntes Mitglied
In welchem Datentyp willst du deine Eingabe speichern?
Was willst du mit dem Text in dem TextField anfangen?
 
C

charly

Gast
Ich möchte es einfach in einen String abspeichern und JTextField möcht ich dazu verwenden wie den normalen JOptionPaneInputDialog nur das ich ihn selbst erstellen kann ich hab auch schon 2 Buttons erstellt nämlich ok und ende, wenn man auf ok klickt dann soll die eingabe in ein String abgespeichert werden, damit ich später mit der Eingabe weiterarbeiten kann.
 

K-Man

Bekanntes Mitglied
Code:
class Test extends .... implements ActionListener
{
private JTextField tf = new JTextField();
private JButton okButton;
private String eingabe = "";

[...]

public Test()
{
    okButton = new JButton("OK");
    okButton.addActionListener(this);
}

public void ActionPerformed(ActionEvent e)
{
    if(e.getSource()==okButton)
    {
         eingabe = tf.getText();
    }
}

[...]

}


Wenn du jetzt auf ok klickst, dann wird deine Eingabe in den String eingabe gespeichert. Wolltest du das wissen?
 
C

charly

Gast
Leider zeigt er mir genau den selben fehler an......

Code:
private static String Eingabe(String txt)
    {
       EingabeBox a = new EingabeBox(txt);
       return a.setJTextField();
    }

    /********************************************************************************************
     ******************  Methode für das Umwandeln von String in Integer*************************
     *******************************************************************************************/
     
    private static int Integer(String txt)
    {
        return Integer.parseInt(txt);   [b]---> hier zeigt er mir den fehler an NumberFormatException
					     ich hab die Exception aber mit catch gefangen
                                                                                     und somit  wiederholt sich die
					     eingabe andauernd[/b]    }
    
    /********************************************************************************************
     ***************Methode für die Abfangen von Zeichenketten in einer Inputbox*****************
     *******************************************************************************************/
     
    private static int Abfang_String(String txt)
    {
        int spieleranzahl = 0;
        boolean ok;
        String spieleranzahl_String;
        
        do
        {
            ok = true;
            spieleranzahl_String = Eingabe(txt);
        
             try
             {
                 spieleranzahl = Integer(spieleranzahl_String);
             }
             catch(NumberFormatException e)
             {
                 ok = false;
             }
         }while(!ok);
         return spieleranzahl;
    }
 
C

charly

Gast
kannst du mir helfen k-man. denn er zeigt zwar beim complieren keinen fehler an aber beim ausführen zeigt er mir diesen fehler an. ich denke das er er bevor die eingabe erfolgt den Text liest und "" findet und da ich ja mit der methode Integer.parseInt(String txt) nicht "" umwandeln kann macht er mir diesen fehler

ich weiß aber leider nicht wie ich das anstellen könnte so wie ich das will
bitte hilf mir danke!
 

K-Man

Bekanntes Mitglied
Hab ich dich richtig verstanden? Du willst den String, den du vom TextField bekommst in einen Integer umwandeln?
Ich kenn jetzt zwar nicht deinen ganzen Code, aber wenn du nicht viel ändern willst, dann kannst du dein Problem mit einem kleinem Trick umgehen. Jedesmal, wenn die Methode aufgerufen wird, die deinen String in einen int umwandeln soll, dann prüf doch einfach vorher, ob der String gültig ist. Setzt in beim Initialisieren auf 'null' und prüf vorher immer, ob der String ungleich null ist.
Code:
String test = null;
[...]
if(test != null)
    int value = Integer.parseInt(test);
[...]
Somit würde er den String nur parsen, wenn er schon mal geändert wurde (zB durch dein getText())
Du könntest auch abfragen, ob die Eingabe einen Wert zwischen 2 und 5 hat (Wenn du zB Spieleranzahl eingeben lassen willst)
Code:
if(test != null && Integer.parseInt(test) >= 2 && Integer.parseInt(test) <= 5)
    int value = Integer.parseInt(test);
Hier kann der Fehler in der if-Anweisung zB nicht auftreten, da die Vergleiche 2 und 3 in if nur gemacht werden, wenn der erste schon true liefert. Das Programm würde also nur parsen, wenn test geändert wurde und deine Eingabe zwischen 2 und 5 liegt.
Gibst du aber andere Werte als Zahlen ein, dann müsstest du dies evtl mit einer Exception abfangen und den Benutzer hinweisen, dass er was anderes eingeben soll.
Vielleicht konnt ich helfen. Wenn nicht, dann frag einfach weiter :wink:
 

L-ectron-X

Gesperrter Benutzer
Es ist einfach nur wichtig zu wissen, dass eine NumberFormatException immer dann geworfen wird, wenn
Java API Documentation hat gesagt.:
public class NumberFormatException
extends IllegalArgumentException

Thrown to indicate that the application has attempted to convert a string to one of the numeric types, but that the string does not have the appropriate format.
Sinngemäß: Wird geworfen, um anzuzeigen, dass die Anwendung versuchte, einen String in einen numerischen Typ zu konvertieren. Der String hat aber nicht das passende Format.

Das heißt, Du musst Dir überlegen, was in dem String-Objekt enthalten ist, den Du mit der parseInt()-Methode in ein Integer-Objekt überführen willst. In den meisten Fällen sind es Zeichen eines nicht numerischen Typs, also keine Zahl.
Du kannst es Dir erst mal recht einfach machen, in dem Du mal den String vor der Übergabe an die parseInt()-Methode zum Test auf der Konsole mit
Code:
System.out.println(str);
ausgibst. Dann siehst Du genau, was der parseInt()-Methode Probleme bereitet.
 
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
B TextListener bei JTextField Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben