reguläre Ausdrücke

ebruss17

Bekanntes Mitglied
Hallo Leute,

ich habe mir eine Client-Server-Anbindung programmiert und dieses durch AWT/Swing erweitert. Wenn sich das Fenster beim Client öffnet, kann ich durch Drücken auf den Button "Personen aufnehmen" Personendaten aufnehmen. Ich gebe einzelne Personeninformationen wie z.b. Name,Vorname, Anrede usw ein. Jedoch wenn ich beim Namen statt Buchstaben Zahlen eingeben, sollte der Benutzer beim Springen auf das nächste Textfeld gleich darauf hingewiesen werden, falls er Falscheingaben betätigt hat. Wie könnte ich das einbauen? Nochmals vielen Dank.

hier mein Code:

Java:
public void mouseClicked(MouseEvent e) {
        Person p = null;
        if (e.getComponent() == button1) {

        	
        	
            boolean visibilityChange = false;

            for (Component comp : getComponents()) {
                if (comp instanceof Label || comp instanceof TextField) {
                    if (!comp.isVisible()) {

                        visibilityChange = true;
                        comp.setVisible(true);


                    }

                }

            }

            if (visibilityChange) {
                return;
            }

            p = getPerson();

            if (!p.checkName()) {
            
            	
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihren Namen bitte nach dem Musterbeispiel ein",
                        // einfach hier noch das Musterbespiel mit angeben
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text1.setText("falsche Eingabe");
                text1.setForeground(Color.red);
            }

            if (!p.checkVorname()) {
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihren Vornamen bitte nach dem Musterbeispiel ein",
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text2.setText("falsche Eingabe");
                text2.setForeground(Color.red);
            }

            if (!p.checkAnrede()) {
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihre Anrede bitte nach dem Musterbeispiel ein",
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text3.setText("falsche Eingabe");
                text3.setForeground(Color.red);
            }

            if (!p.checkStrasse()) {
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihre Strasse bitte nach dem Musterbeispiel ein",
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text4.setText("falsche Eingabe");
                text4.setForeground(Color.red);
            }

            if (!p.checkOrt()) {
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihre Postleitzahl bitte nach dem Musterbeispiel ein",
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text5.setText("falsche Eingabe");
                text5.setForeground(Color.red);
            }

            if (!p.checkPLZ()) {
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihren Ort bitte nach dem Musterbeispiel ein",
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text6.setText("falsche Eingabe");
                text6.setForeground(Color.red);
            }

            if (!p.checkTelefon()) {
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihre Telefonnummer bitte nach dem Musterbeispiel ein",
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text7.setText("falsche Eingabe");
                text7.setForeground(Color.red);
            }

            if (!p.checkFax()) {
            	
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihre Faxnummer bitte nach dem Musterbeispiel ein",
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text8.setText("falsche Eingabe");
                text8.setForeground(Color.red);
            }
 

ebruss17

Bekanntes Mitglied
Lieber Marcinek,

ich habe so das Gefühl, dass du dich über mich lustig machen willst! Wir sind hier schließlich im Forum und ein bisschen Hilfe sollte man meiner Meinung nach leisten. Es wäre nett, wenn du mir nicht mehr antworten würdest ....Vielen Dank!
 
M

Marcinek

Gast
Hallo,

du fragst nach Basics, die 1.000.000 Fach in allen Foren der Welt behandelt worden sind (auch in diesem).

Wieso sollte irgentjemand diese Ergebnisse hierher redundant kopieren?

Hast du konkrete Fragen zu diesem Problem?

Gruß,

Martin
 

ebruss17

Bekanntes Mitglied
Hi,

also ich arbeite jetzt mit AWT/Swing

ich drücke den Button "Person aufnehmen"

ich habe die regulären Ausdrücke schon implementiert:

Java:
public boolean checkName(){
    return name.matches("([A-Z??][a-z??]+)");
}

public boolean checkVorname(){
    return vorname.matches("([A-Z??][a-z??]+)|([A-Z??][a-z??]+[-][A-Z??][a-z??]+)");
}

public boolean checkAnrede(){
    return anrede.matches("(Herr|Frau)");
}

public boolean checkStrasse(){
    return strasse.matches("([A-Z??][a-z???]+[/ ][0-9]+)|([A-Z??][a-z???]+[/ ][A-Z??][a-z???]+[/ ][0-9]+)");
}

public boolean checkOrt(){
    return ort.matches("([A-Z][a-z]+)|([A-Z??][a-z??]+)");
}

public boolean checkPLZ(){
    return plz.matches("[A-Z]+[-][0-9]{1,5}");
}

public boolean checkTelefon(){
    return telefon.matches("([/+][0-9]{2}[/ ])?[0-9]+[/-][0-9]+");
}

public boolean checkFax(){
    return fax.matches("([/+][0-9]{2}[/ ])?[0-9]+[/-][0-9]+");
}

public boolean checkBemerkung()
{
	return bemerkung.matches("");
}


public boolean checkAll()
{
	return checkName() && checkVorname() && checkAnrede() && checkStrasse()
			&& checkPLZ() && checkOrt() && checkTelefon() && checkFax() && checkBemerkung();
}

ABER wenn ich im Textfeld die einzelnen Attribute eingebe, werde ich beim Springen auf das nächste Textfeld nicht sofort darauf hingewiesen, dass ich Falscheingaben gemacht habe warum?

Hier der Code, wo der Button "Person aufnehmen" geklickt wird:

Java:
public void mouseClicked(MouseEvent e) {
        Person p = null;
        if (e.getComponent() == button1) {
 
            
            
            boolean visibilityChange = false;
 
            for (Component comp : getComponents()) {
                if (comp instanceof Label || comp instanceof TextField) {
                    if (!comp.isVisible()) {
 
                        visibilityChange = true;
                        comp.setVisible(true);
 
                    }
 
                }
 
            }
 
            if (visibilityChange) {
                return;
            }
 
            p = getPerson();
 
            if (!p.checkName()) {
            
                
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihren Namen bitte nach dem Musterbeispiel ein",
                        // einfach hier noch das Musterbespiel mit angeben
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text1.setText("falsche Eingabe");
                text1.setForeground(Color.red);
            }
 
            if (!p.checkVorname()) {
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihren Vornamen bitte nach dem Musterbeispiel ein",
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text2.setText("falsche Eingabe");
                text2.setForeground(Color.red);
            }
 
            if (!p.checkAnrede()) {
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihre Anrede bitte nach dem Musterbeispiel ein",
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text3.setText("falsche Eingabe");
                text3.setForeground(Color.red);
            }
 
            if (!p.checkStrasse()) {
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihre Strasse bitte nach dem Musterbeispiel ein",
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text4.setText("falsche Eingabe");
                text4.setForeground(Color.red);
            }
 
            if (!p.checkOrt()) {
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihre Postleitzahl bitte nach dem Musterbeispiel ein",
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text5.setText("falsche Eingabe");
                text5.setForeground(Color.red);
            }
 
            if (!p.checkPLZ()) {
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihren Ort bitte nach dem Musterbeispiel ein",
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text6.setText("falsche Eingabe");
                text6.setForeground(Color.red);
            }
 
            if (!p.checkTelefon()) {
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihre Telefonnummer bitte nach dem Musterbeispiel ein",
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text7.setText("falsche Eingabe");
                text7.setForeground(Color.red);
            }
 
            if (!p.checkFax()) {
                
                JOptionPane.showMessageDialog(this,
                        "Geben Sie Ihre Faxnummer bitte nach dem Musterbeispiel ein",
                        "Es ist ein Fehler aufgetreten",
                        JOptionPane.ERROR_MESSAGE);
                text8.setText("falsche Eingabe");
                text8.setForeground(Color.red);
            }

ich muss den Button "Person aufnehmen" nochmals klicken, damit er mir die Fehleingaben anzeigt. Ich möchte aber, dass mir sofort beim Springen auf das nächste Textfeld die falsch betätigte Eingabe angezeigt wird...
 
M

Marcinek

Gast
Du suchst das Focus Lost Event.

MouseClick für einen Button ist auch eher unüblich. Die feuern ihre eigenen Action Events.
 
Zuletzt bearbeitet von einem Moderator:

Ähnliche Java Themen

Neue Themen


Oben