Java JFrame Textfield Integer-Eingabe in Variable packen?
Hi, ich versuche gerade in Java per JFrame ein bisschen etwas zu machen. Ich habe ein Textfeld und möchte dessen Eingabe in eine Variable stecken. Per String klappt es so:
textField = new JTextField();
textField.setBounds(10, 61, 167, 20);
contentPane.add(textField);
textField.setColumns(10);
textField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
input = textField.getText();
}
});
und der Button macht dann
System.out.println(input);
Aber wenn man jetzt ins Feld eine Zahl eingibt, kommt null heraus. Warum?
Ich habe natürlich die Variable von String dann zu int versucht, aber dann kommt ein Fehler, dass ein String nicht in ein int konvertiert werden kann. Wie behebe ich das Problem? Ich habe auch nach alternativen Methoden zu getText gesucht, aber keine stach mir ins Auge.
3 Antworten
textField.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
warn();
}
public void removeUpdate(DocumentEvent e) {
warn();
}
public void insertUpdate(DocumentEvent e) {
warn();
}
public void warn() {
int i = Integer.parseInt(textField.getText());
// Your code here
}
});
Quelle: https://stackoverflow.com/questions/3953208/value-change-listener-to-jtextfield
Also einem TextField ein ActionListener zu geben, ist keine gute Idee, aber wenn trotzdem doch :
Input = Integer.parseInt(TextField.getText());
Habs ein wenig fixen können, indem ich den String in ein integer parse, aber man muss auch bei der zeile enter drücken, damit er das übernimmt.
habs nochmal durch eine methode fixen können:
public void Textfeldabfrage() {
input1 =textField.getText();
input = Integer.parseInt(input1);
}
diese wird halt vom button aufgerufen nimmt dann die variable input.