Hallo zusammen,
Ich möchte eine überprüfung von 2 Textfeldern machen
alle Editierbar, es sollen nur Zahlen zulässig sein(Aber vernachlässigbar nur zum verständnis). Da aus den ersten Zwei Zahlen die dritte berechnet werden soll (und einer weiteren Zahl), die Differenz aus aus behalterinhalt und gegMenge darf nicht kleiner 0 werden wenn doch soll der Alte wert von gegeMenge eingetragen werden.
Ich hab die eingabeüberprüfung mit DocumentListener gelöst - leider ist es da nicht möglich eine Korrektur eines Feldes vorzunehmen da sonst ein IllegalStateException fliegt.(in Zeile 74 würde die Exception Fliegen)
Gibts nen anderen weg die Felder bei der Eingabe zu überprüfen? oder kann man doch mit dem Documentlistener die Werte ändern?
Vielen dank für die Antworten im Vorraus
Ich möchte eine überprüfung von 2 Textfeldern machen
alle Editierbar, es sollen nur Zahlen zulässig sein(Aber vernachlässigbar nur zum verständnis). Da aus den ersten Zwei Zahlen die dritte berechnet werden soll (und einer weiteren Zahl), die Differenz aus aus behalterinhalt und gegMenge darf nicht kleiner 0 werden wenn doch soll der Alte wert von gegeMenge eingetragen werden.
Ich hab die eingabeüberprüfung mit DocumentListener gelöst - leider ist es da nicht möglich eine Korrektur eines Feldes vorzunehmen da sonst ein IllegalStateException fliegt.(in Zeile 74 würde die Exception Fliegen)
Java:
JTextField Textrestmenge=new JTextField();
JTextField Text
Textrestmenge().getDocument().addDocumentListener(new DocumentListener() {
@Override
public void removeUpdate(DocumentEvent arg0) {
}
@Override
public void insertUpdate(DocumentEvent arg0) {
checkrestmenge();
}
@Override
public void changedUpdate(DocumentEvent arg0) {
checkrestmenge();
}
private void checkrestmenge(){
if(isNumeric(Textrestmenge().getText())){
cont.pruefeBehaltervoll();
}
else{
new Fehlermeldung(frame, "Es wurde Keine Zahl eingegeben, es sind nur Zahlen zulässig!");
restmenge().setText(String.valueOf(restmenge));;
}
}
});
Textgegmeng().getDocument().addDocumentListener(new DocumentListener() {
@Override
public void removeUpdate(DocumentEvent arg0) {
}
@Override
public void insertUpdate(DocumentEvent arg0) {
checkgegmenge();
}
@Override
public void changedUpdate(DocumentEvent arg0) {
checkgegmenge();
}
private void checkgegmenge(){
if(isNumeric(Textgegmeng().getText())){
cont.pruefeBehaltervoll();
}
else{
new Fehlermeldung(frame, "Es wurde Keine Zahl eingegeben, es sind nur Zahlen zulässig!");
}
berechneRestmengeNeu();
}
});
public void berechneRestmengeNeu(){
if((!Textgegmeng().getText().equals(""))&&(!Textrestmenge().getText().equals(""))){
restmenge=behalterinhalt-Integer.valueOf(Textgegmeng().getText());
if(restmenge<0){
if(bildschirmtastaturmodus){
JOptionPane.showMessageDialog(frame, "Die Restmenge kann nicht negativ sein!","Warnung",JOptionPane.INFORMATION_MESSAGE);
setTextgegmeng().setText(String.valueOf(altgegmenge));
}
}
else{
Textrestmenge().setText(String.valueOf(restmenge));
}
}
}
Gibts nen anderen weg die Felder bei der Eingabe zu überprüfen? oder kann man doch mit dem Documentlistener die Werte ändern?
Vielen dank für die Antworten im Vorraus