Hallo alle Zusammen, ich versuche einen Gui dynamisch aufbauen ja (nach dem Daten Typ in der Datenbanken wenn es um einen bit Daten Type dann wir einen Check box gebaut und ....) Es funktioniert alles Okay, nur habe ich folgenden Problem : wie kann ich beim editieren verhindern, dass einen ungültige Type eingegeben wird (es handelt sich immer nach bevor um einen dynamische aufgebaute GUI) Für jeden Hilfe bin ich sehr dankbar
bei einer Checkbox kannst jetzt nicht viel falsch eingeben bei einem DateEdit oder TimeEdit auch nicht für Zahlen gibt es NumericEdit usw. zumindest in der Programmiersprache die ich verwende ;-) Deine kennen wir ja nicht...
Hallo, ich programmiere mit Java. Udo Schmitt schrieb: > Indem du die Eingabe überprüfst? beim Eingabe sollte verhindert werden, dass eine unzulässige Datentype eingegeben werden.
Und woher willst du wissen, das die noch nicht gemachte Eingabe unzulässig ist ?. Biete dem datentyp entsprechende Auswahllisten an.
Aeron schrieb: > beim Eingabe sollte verhindert werden, dass eine unzulässige Datentype > eingegeben werden. Die Idee ist zwar naheliegend, funktioniert aber in den meisten Fällen nicht vernünftig. Meistens ist es dann so, dass der Benutzer enorme Klimmzüge machen muss, damit er sich zwischendurch nicht in einen ungültigen Zustand manövriert. zb ist "-" eine gültige Eingabe? An und für sich nicht. Aber wenn der Benutzer eine negative Zahl eingeben will, dann landet er zwischendurch mal in diesem Zustand. Genauso wie er auch mal ein leeres Editfeld haben wird. -> Eingaben hinterher überprüfen. Wenn der Benutzer was falsch eingegeben hat, dann eine Fehlermeldung anzeigen und den Focus zum entsprechenden Eingabefeld schicken.
Karl Heinz Buchegger schrieb: > -> Eingaben hinterher überprüfen. Wenn der Benutzer was falsch > eingegeben hat, dann eine Fehlermeldung anzeigen und den Focus zum > entsprechenden Eingabefeld schicken. Den Focus automatisch zurückzusetzen kann durchaus auch mal den Effekt haben daß man aus einem ungültigen Zustand schlecht wieder rauskommt. Beispiel: man hat einen String in ein Textfeld eingegeben, ändert jetz aber in einer Selectbox den Typ der Variablen die man in dem Textfeld erwartet auf einen numerischen Wert. Jetzt kommt man aber nicht mehr aus der Selectbox weil ja im Feld selbst schon ein String steht. Also besser einfach falsche Eingaben farbig markieren und beim Verlassen der Maske ein Speichern verhindern oder je nachdem auch nur warnen.
Karl Heinz Buchegger schrieb: > Aeron schrieb: > >> beim Eingabe sollte verhindert werden, dass eine unzulässige Datentype >> eingegeben werden. > > Die Idee ist zwar naheliegend, funktioniert aber in den meisten Fällen > nicht vernünftig. Meistens ist es dann so, dass der Benutzer enorme > Klimmzüge machen muss, damit er sich zwischendurch nicht in einen > ungültigen Zustand manövriert. Bei Qt gibt es die Klasse QValidator, die man z.B. einenm LineEdit mitgeben kann. Der kennt aber genau aus dem von dir genannten Grund nicht zwei, sondern drei Zustände, nämlich acceptable, invalid und intermediary. Damit kann man das eigentlich sehr schön abbilden. invalid kann gar nicht erst eingegeben werden, wie z.B. ein 'R' in ein Feld, wo nur Hex-Werte erlaubt sind, intermediate wird nicht als Endergebnis akzeptiert, kann aber eingegeben werden, so wie das '-' aus deinem Beispiel. Um dem Benutzer den Status der Eingabe noch deutlicher zu machen, kann man auch noch den Hintergrund des Eingabefeldes rot einfärben, wenn's intermediate ist.
Hallo alle zusammen, es hat schon geklappt. Man muss nur nach jeden Datentype der DB abfragen hier einen Beispiel von meinem QuellenCode : if("varchar".equalsIgnoreCase(sNameType)){ JTextField txtField = new JTextField(); txtField.setDocument(new Sorttext(String.class, iColumnSize)); component = txtField; txtField.setEnabled(this.editingModus); txtField.setEditable(this.editingModus); Die Klasse Sorttext ist eine eigene geschrieben klasse, die überprüft ob es der eingegebene zu formatieren(ja nach welchen Format) bzw zu sortieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.