Textfeld Eingabe überprüfen!

Status
Nicht offen für weitere Antworten.

CroweHammer

Bekanntes Mitglied
Hi java-forum Community,

ich bin Auszubildender und muss von meinem Betrieb aus Java lernen. Ich hoffe ihr könnt mir gute Unterstützung liefern. Würde mich sehr freuen!

Ich will die Eingabe eines Textfelds überprüfen, ob sie in Form einer Geographischen Koordinate eingegeben wurde (in Grad).

Also ob es in dieser Form eingegeben wurde: 00° 00' 00"'

Ist das möglich, wenn ja wie? Und bitte ich will es am Ende vertanden haben, sonst lern ich das nie!

Danke, im voraus

mfg CroweHammer
 
S

SlaterB

Gast
mit regulären Ausdrücken kannst du ein Format überprüfen
 

Professor Chaos

Aktives Mitglied
SlaterB hat gesagt.:
mit regulären Ausdrücken kannst du ein Format überprüfen
Ich glaube, dass solch eine Antwort einem blutigen Anfänger absolut gar keine Hilfe ist^^
(soll kein Angriff sein)

@CroweHammer
Da du noch Anfänger bist: Tut es nicht ein primitives Zerlegen des Strings in seine Bestandteile und dann ein Vergleich?
Code:
"some String".substring(beginIndex, endIndex)
 
S

SlaterB

Gast
'reguläre Ausdrücke' war natürlich ein Stichwort für google/ Lehrbuch mit 2-7 Tagen lernen ;)
 

thE_29

Top Contributor
Sollte das hier sein

Code:
    Pattern p = Pattern.compile("\\d\\d° \\d\\d' \\d\\d\\\"");
 

thE_29

Top Contributor
Noch ein LimitPatternDocument

Code:
package at.dstore.bo;

import javax.swing.text.PlainDocument;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import java.util.regex.Pattern;
import java.awt.Toolkit;

/**
 * 

Überschrift: Klasse ist ein limitiertes Dokument (-1 ist kein LängenLimit) welches den eingegebenen Text via
 * regext abfragt und validiert</p>
 *
 * 

Beschreibung: </p>
 *
 * 

Copyright: Copyright (c) 2008 by JTA (class is under LGPL)</p>
 *
 * 

Organisation: JTA</p>
 *
 * @author Taschek Joerg
 * @version 1.0 Erstversion 08.06.2008
 */
public class LimitPatternDocument extends PlainDocument
{
  private Pattern pattern = null;
  private int MAX_LEN = -1;

  /**
   *
   * @param pattern String
   */
  public LimitPatternDocument(String pattern)
  {
    this(pattern, -1);
  }

  /**
   *
   * @param pattern String
   * @param max_len int
   */
  public LimitPatternDocument(String pattern, int max_len)
  {
    super();
    this.pattern = Pattern.compile(pattern);
    this.MAX_LEN = max_len;
  }

  /***************************************************************************
   * Methode erlaubt nur die Zeichen die im Pattern stehen als Eingabe und eine gewisse Länge (falls übergeben
   * @param offset int
   * @param s string
   * @param attributeSet att
   * @throws BadLocationException
   **************************************************************************/
  public void insertString(int offset, String s, AttributeSet attributeSet) throws BadLocationException
  {
    if(s == null)
    {
      Toolkit.getDefaultToolkit().beep();
      return;
    }
    if(s.length() > 1)
    {
      for (int x = 0; x != s.length(); x++)
      {
        insertString(offset + x, s.substring(x, x+ 1), attributeSet);
      }
      return ;
    }
    else
    {
      if(pattern.matcher(s).matches()) //wenn es dem Pattern entspricht
      {
        if(MAX_LEN != -1) //wenn maximal länge angegeben ist
        {
          if(getLength() + 1 > MAX_LEN)
            Toolkit.getDefaultToolkit().beep();
          else
            super.insertString(offset, s, attributeSet);
        }
        else //ansonsten einfach eingeben
        {
          super.insertString(offset, s, attributeSet);
        }
      }
      else
        Toolkit.getDefaultToolkit().beep(); //ansonsten biepsen
    }
  }

}

Wie man die anwendet findest du in den FAQs!
 

CroweHammer

Bekanntes Mitglied
Danke schonmal für eure Hilfe. Ich hab mich jetzt mal an einem einfachen Beispiel versucht.
Die Ausgabe soll in diesem Fall erfolgen, wenn zwei Zahlen zwischen [0-9] eingegeben wurden, siehe \\d\\d.
Code:
private void bnstartActionPerformed(java.awt.event.ActionEvent evt) {                                        

// Variablen sEingabeGrad deklarieren!
    
    String sEingabeGrad;

    sEingabeGrad = txtEingabeGrad.getText();
        
    while (true) {        
        
    Pattern pattern = 
    Pattern.compile("\\d\\d");
    Matcher matcher = 
    pattern.matcher(sEingabeGrad);
    
    while (matcher.find()) {        
        
        txtAusgabeDezimal.setText(sEingabeGrad);
                
     }

  } 
       
}
Die drei Imports hab ich natürlich gemacht, hätte ich aber glaub ich auch einfach einen import.java.util.regex*; machen können!
Code:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.regex.PatternSyntaxException;
Lasse ich das Programm so laufen, geb z.B. eine zweistellige Zahl an und drücke den Button passiert gar nichts. Was hab ich falsch gemacht, könnt ihr mir auf die Sprünge helfen, sitz jetzt bald schon 7 std. an regulären Ausdrücken. Eine Fehlermeldung kommt übrigens nicht!
 
S

SlaterB

Gast
> Was hab ich falsch gemacht

hast komischen Kram programmiert,
es gibt nur einen wahren ActionListener:

private void bnstartActionPerformed(java.awt.event.ActionEvent evt) {
System.out.println("geht");
}

zumindest ist das die erste Version, geht das oder nicht,
wenn nicht ist das restliche Programm wichtig

ansonsten:
was soll die Endlosschleife, wann wird die beendet?
solange der ActionListener arbeitet, bei dir anscheinend bis in alle Zeiten,
wird die GUI nicht neugezeichnet, blockiert,

wenn du eine dauerhafte Nebenaktion haben willst, dann muss die in einen Thread,
aber auch dann muss Thread.sleep(100) rein, sonst hast du 100% CPU-Last,

was soll eigentlich passieren?
einfach so programmieren scheint bei derartigen Themen nicht sinnvoll..
 

CroweHammer

Bekanntes Mitglied
Also was ich will ist, dass ein Benutzer eine Eingabe in dem Textfeld (txtEingabeGrad) vornimmt. Diese soll dann darauf überprüft werden, ob sie dem Muster "\\d\\d" entspricht (also zwei Zahlen zwischen 0-9 direkt hintereinander) und wenn dies der Fall ist, dann soll die Eingabe des Benutzers in in dem Textfeld (txtAusgabeDezimal) ausgegeben werden.

Wenn das endlich funktionieren würde, hätte ich eine Vorlage, auf der ich aufbauen kann! Daher empfinde ich das durchaus als sinnvoll ;-)

PS: Ich arbeite mit einem Jframe: 2Texfelder und 1 OK Button
 

CroweHammer

Bekanntes Mitglied
Also ich hab es jetzt ein bisschen anders gelöst mit Hilfe einer IF-Verzweigung. Das Programm überprüft jetzt ob die Eingabe im richtigen Format eingegeben wurde, wenn ja wird sie ausgegeben, wenn nein kommt eine Fehlermeldung! Immerhin einen kleinen Schritt in die richtige Richtung.

Code:
private void bnTestActionPerformed(java.awt.event.ActionEvent evt) {

    String sGradKoordinateEingabe;
    
    sGradKoordinateEingabe = txtGradKoordinateEingabe.getText();
    
    Pattern pattern = Pattern.compile("\\d\\d° \\d\\d' \\d\\d\\\"");
    Matcher matcher = pattern.matcher(sGradKoordinateEingabe);
    boolean b = Pattern.matches("\\d\\d° \\d\\d' \\d\\d\\\"", sGradKoordinateEingabe);
    
    if (b == true) {        
        
        txtGradKoordinateAusgabe.setText(matcher.replaceFirst(sGradKoordinateEingabe));    
        
    } else {
        
        txtGradKoordinateAusgabe.setText("Stimmt nicht mit dem Muster überein!");
    }   
}
 

CroweHammer

Bekanntes Mitglied
Jetzt hab ich mich echt dumm und fusselig gesucht!
Und zwar will ich, dass man entweder die Möglichkeit hat nach dem letzten Zahlenpaar ein Anführungszeichen ( " ) oder zwei (einzelne Hochkomma) ( '' ) eingeben zu dürfen, wie muss ich das schreiben? ich hab schon fast alles ausprobiert!

Code:
Pattern pattern = Pattern.compile("\\d\\d° \\d\\d' \\d\\d\"");

Um diesen Code-Schnipsel geht es!

danke im voraus,

mfg crowe

ps: im moment kann man natürlich nur das Anführungszeichen eingeben!

Edit: Hat sich erledigt, hab es alleine gelöst!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
G Exception - Unvollständige Eingabe im Textfeld Java Basics - Anfänger-Themen 2
Z Applet: Eingabe aus Textfeld auslesen und manipulieren Java Basics - Anfänger-Themen 3
M Textfeld zurücksetzen Java Basics - Anfänger-Themen 3
G JSP Textfeld einlesen Java Basics - Anfänger-Themen 2
J JDatePicker: Datum wird nicht in Textfeld übernommen Java Basics - Anfänger-Themen 5
N Zeichen in einem Textfeld zählen und hinterlegen Java Basics - Anfänger-Themen 6
M Erste Schritte Mit Variable verschiedene Texte in Textfeld einfügen Java Basics - Anfänger-Themen 27
M Wie kann ich hier ein Textfeld hinzufügen Java Swing? Java Basics - Anfänger-Themen 1
M Wie kann ich im JAVA-GUI im Textfeld ein Array speichern Java Basics - Anfänger-Themen 4
T Erste Schritte Textfeld abfragen ob etwas enthalten ist. Java Basics - Anfänger-Themen 17
E Wert in Textfeld schreiben Java Basics - Anfänger-Themen 1
E Anzahl Datensätze in Textfeld Java Basics - Anfänger-Themen 5
N Auf TextFeld aus anderer Klasse zugreifen ohne es zu übergeben Java Basics - Anfänger-Themen 3
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
N Problem mit Swing Textfeld und Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 6
B Datentypen Textfeld auf Nicht-Zahlen überprüfen Java Basics - Anfänger-Themen 10
B Wert aus TextFeld in Canvas benutzen Java Basics - Anfänger-Themen 0
P Textfeld auslesen Java Basics - Anfänger-Themen 4
S TextFieldFilter - Wenn Textfeld leer dann setze 0 Java Basics - Anfänger-Themen 9
W Textfeld auslesen und in Liste speichern Java Basics - Anfänger-Themen 11
D Leeres Textfeld nicht auslesen Java Basics - Anfänger-Themen 3
L KeyListener ohne textfeld Java Basics - Anfänger-Themen 4
J Problem mit String von Textfeld Java Basics - Anfänger-Themen 13
H Textfeld auslesen lassen Java Basics - Anfänger-Themen 11
N Textfeld- und Buttonerkennung einer Webseite Java Basics - Anfänger-Themen 6
M textfeld auslesen und in liste einlesen Java Basics - Anfänger-Themen 2
R GUI - Liste mit Textfeld und Radiobuttons Java Basics - Anfänger-Themen 8
C Buttons über Textfeld beschriften Java Basics - Anfänger-Themen 10
E Eingabemöglichkeiten für Textfeld begrenzen Java Basics - Anfänger-Themen 6
G String-Wert aus Textfeld auslesen Java Basics - Anfänger-Themen 9
D Canvas löschen über MouseEntered in Textfeld Java Basics - Anfänger-Themen 6
X Methoden [GWT] Dynamisches Textfeld PopUp erstellen Java Basics - Anfänger-Themen 6
F TextFeld überprüfen Java Basics - Anfänger-Themen 20
T text von textfeld auslesen und wieder reinschreiben Java Basics - Anfänger-Themen 10
T Erste Schritte Textfeld übernimmt Größe nicht Java Basics - Anfänger-Themen 11
Joew0815 Homepage Textfeld füllen und Button klicken Java Basics - Anfänger-Themen 10
Kenan89 TextFeld und Zahlen Java Basics - Anfänger-Themen 14
B Textfeld aufpoppen lassen Java Basics - Anfänger-Themen 15
S Werte aus einem Textfeld lesen Java Basics - Anfänger-Themen 13
H Focus auf Textfeld in JOptionPane Java Basics - Anfänger-Themen 2
D Interpreter-Fehler NumberFormatException Textfeld Java Basics - Anfänger-Themen 24
C Mit Java Textfeld einer externen Anwendung auslesen Java Basics - Anfänger-Themen 9
J Textfeld für Taschenrechner Java Basics - Anfänger-Themen 3
U Drag&Drop von Tabelle in Textfeld Java Basics - Anfänger-Themen 3
M Inhalt Textfeld prüfen Java Basics - Anfänger-Themen 4
F Textfeld: String (x,xx) --> double Java Basics - Anfänger-Themen 8
F Text aus Textfeld1 in Textfeld 2 kopieren Java Basics - Anfänger-Themen 5
D Problem mit TextFeld Array Java Basics - Anfänger-Themen 18
R Textfeld "sperren", Text darf nicht eingegeben werden - wie realisierbar? Java Basics - Anfänger-Themen 2
I auf Textfeld aus anderer Klasse heraus zugreifen Java Basics - Anfänger-Themen 2
W OOP Datum aus Access in Textfeld schreiben ohne Stunden/Minuten/Sekunden Java Basics - Anfänger-Themen 2
J Escape taste geht ohne cursor im textfeld nicht. Java Basics - Anfänger-Themen 4
S Excel Textfeld auslesen Java Basics - Anfänger-Themen 6
1 Textfeld aktiv beim starten des Programms Java Basics - Anfänger-Themen 5
J double wert aus textfeld auslesen Java Basics - Anfänger-Themen 2
A Grafisches Textfeld zur Ausgabe Java Basics - Anfänger-Themen 3
H Textfeld Werte Java Basics - Anfänger-Themen 14
S Textfeld Wert auslesen Java Basics - Anfänger-Themen 2
A Mehrere verschieden Farben / Textfeld Java Basics - Anfänger-Themen 2
M Textfeld soll nur Zahlen erlauben Java Basics - Anfänger-Themen 26
G Textfeld und Label in einem Tab? Anfänger braucht Hilfe Java Basics - Anfänger-Themen 3
E Textfeld aktualisieren Java Basics - Anfänger-Themen 3
L Textfeld Inhalt löschen Java Basics - Anfänger-Themen 2
G Exception bei leerem Textfeld Java Basics - Anfänger-Themen 12
Antoras Klasse in einem Textfeld zeichnen Java Basics - Anfänger-Themen 4
J Zahl in Textfeld hinzufügen Java Basics - Anfänger-Themen 10
P Tab in textfeld einfügen Java Basics - Anfänger-Themen 4
B Textfeld auslesen Java Basics - Anfänger-Themen 5
R textfeld größe definieren Java Basics - Anfänger-Themen 2
R Textfeld und zahlen? Java Basics - Anfänger-Themen 4
C alle möglichen Datumseingaben im Textfeld abfangen Java Basics - Anfänger-Themen 12
A Ausgabe einer variablen im textfeld Java Basics - Anfänger-Themen 3
L Nur ganzzahlige Zahlen im Textfeld Java Basics - Anfänger-Themen 3
B Text per Button von ein textfeld in das andere? Java Basics - Anfänger-Themen 9
S voreingestellte zahl im textfeld Java Basics - Anfänger-Themen 2
H Text aus Textfeld per Actionlistener in Label ausgeben. Java Basics - Anfänger-Themen 6
V editierbares textfeld Java Basics - Anfänger-Themen 2
R Frage zur Länge von Textfeld und String Java Basics - Anfänger-Themen 4
A Ein TextFeld als mit Echtzeitausgabe? (Wie bei der Console) Java Basics - Anfänger-Themen 3
G textfeld nur mit zahlen Java Basics - Anfänger-Themen 2
G Textfeld zweimal Auslesen - Probleme Java Basics - Anfänger-Themen 6
V Tastatur Abfrage im Lisener für eine Auswahl üder Textfeld Java Basics - Anfänger-Themen 8
G AWT-Textfeld zeichenanzahl begrentzen Java Basics - Anfänger-Themen 4
G Wie Text in Textfeld zentrieren? Java Basics - Anfänger-Themen 2
W Aus Textfeld ein "MySQL Date" auslesen Java Basics - Anfänger-Themen 2
I Was in Swing, was in AWT zeichnen & Textfeld formatierba Java Basics - Anfänger-Themen 4
N in textfeld nur zahlen und punkl Java Basics - Anfänger-Themen 12
G Ausgabe des Java Ergebnisses in Textfeld Java Basics - Anfänger-Themen 17
S Array im Textfeld ausgeben Java Basics - Anfänger-Themen 7
B Leeres Textfeld, was nun. Java Basics - Anfänger-Themen 4
G Textfeld in Frame geht nicht! :( Java Basics - Anfänger-Themen 3
B textfeld mit enter auslesen klappt nicht Java Basics - Anfänger-Themen 12
J Textfeld mit Eingabeprüfung Java Basics - Anfänger-Themen 10
N textfeld border . Java Basics - Anfänger-Themen 2
J Leeres Textfeld auslesen Java Basics - Anfänger-Themen 6
B Fokus auf ein Textfeld setzen? Wie? Java Basics - Anfänger-Themen 8
L Textfeld mit nur Zahlen? Java Basics - Anfänger-Themen 2
R GridBagLayout und JTextField: Textfeld ist viel zu schmal Java Basics - Anfänger-Themen 4
G Java Microedition TExtfeld in Variable einlesen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben