Foute of ontbrekende invoer

Status
Niet open voor verdere reacties.

Warranty

Gebruiker
Lid geworden
3 nov 2006
Berichten
100
Dag allen,

Ik heb een kleine applicatie om een hypotheek uit te rekenen. Ik vraag me af hoe ik het volgende doe: Ik moet ervoor zorgen dat als er in de tekstvakken niks of een foutieve invoer is, dat deze dan een foutmelding geeft. Ik heb tot nu toe dit:

Code:
boolean checkOk = true;
            String fouttekst = "";
            if (txtBrutojaar.getText().length() == 0) {
                checkOk = false;
                fouttekst += "\n Bruto jaarsalaris is niet ingevuld!";
            }
            if (!checkOk) {
                JOptionPane.showMessageDialog(null, fouttekst, "Iets vergeten?",
                                              JOptionPane.ERROR_MESSAGE);
            } else {
code die uitgevoerd moet worden als het in orde is
}

Hier zorgt hij er dus voor dat er bij een ontbrekende invoer, als het tekstvak helemaal leeg is, dat hij het een foutmelding geeft. Echter een spatie word nog steeds getollereerd. En anders wel 2 spaties. Ook wil ik ervoor zorgen dat hij letters niet accepteerd! Hoe kan ik hiervoor zorgen en kan dat wel met bovenstaande code?

Alvast bedankt!
 
Kijk eens naar de functie trim().

Voor de verkeerde / onjuiste karakters / tekens: doorloop de hele tekst in je tekstarea en controleer elk karakter op juistheid :)
 
Met trim() haal ik alleen de witruimtes (en spaties dus) weg. Wel handig voor de lege ruimtes ja, maar nu zit ik nog met de letters en tekens die ik niet wilt dat hij accepteert! Alleen cijfers dus, hoe doe ik dat?

Dankjewel in ieder geval voor de trim() tip :thumb:
 
Wat voor characters zijn allemaal toegestaan in het tekstvak?
Alleen maar cijfers?
 
Wat ik daarvoor gebruik:

Code:
//Globale variabele
private char[] validChars = { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' };

//Aan de tekstvakken koppelen:
     txtvaknaam.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                if(!isValidChar(evt.getKeyChar()){
                   evt.consume();
                  }
            }
        });


//methode
    private boolean isValidChar(char c) {
        for (int i = 0; i < validChars.length -1; i++) {
            if(c == validChars[i]){
                return true;
            }
        }
        return false;
    }

Teken je de tekstvakken zelf? of is het 'drag and drop' ? :)
 
Laatst bewerkt:
Ik zet ze er allemaal zelf in. Dat doe ik omdat de code op die manier overzichtelijk blijft. Ik drag en drop dus nooit! (Ook al zou dat misschien wel sneller gaan).

Bedankt in ieder geval, ik zal dit even proberen.

P.S. Ben je trouwens niet een haakje sluiten vergeten achter:

dit had jij:
Code:
txtvaknaam.addKeyListener(new java.awt.event.KeyAdapter() {
moet het niet zo?
Code:
txtvaknaam.addKeyListener(new java.awt.event.KeyAdapter()) {

Hij geeft bij het eerste haakje de melding: Identifier expected.
 
Laatst bewerkt:
Klopt :)
Ik had het half uit mijn hoofd getypt, dus kunnen kleine foutjes in zitten
 
Laatst bewerkt:
Maar juist alsnog met dat haakje extra van mij, geeft hij de melding "Identifier expected" bij dat eerste haakje.
 
Ik ga er even naar kijken.
De ) moet niet op die plaats.

als je de functie hebt dan:
Code:
       txtvaknaam.addKeyListener[COLOR="Red"]([/COLOR]new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                if(!isValidChar(evt.getKeyChar())[COLOR="Lime"])[/COLOR]{
                   evt.consume();
                  }
            }
        }[COLOR="Red"])[/COLOR];

Horen de roden bij elkaar.
Probleem zo te zien ook al gevonden.
Groene haakje moest erbij.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan