Eingabeprüfung JTextField. Fehler bei Copy-Paste

endidu

Mitglied
Hallo,

Ich habe ein Document zusammengebastelt, damit ich in einem JTextField nur bestimmte Zahlen (0.0 - 8.9) eingeben kann.

Hier die Quelcode:
Java:
	@Override
	public void insertString(int offset, String s, AttributeSet attributeSet) throws BadLocationException{
		if ((getLength() + s.length()) <= limit) {
			int zahl = 0;
			
			if(getLength()+s.length() == 1){
				try{
					zahl = Integer.parseInt(s);
					if (zahl > 8)
						return;
				}catch(Exception ex){   //!< nur Integerwerte sind erlaubt
					Toolkit.getDefaultToolkit().beep(); 
					return ;
				}
				super.insertString(offset,s, attributeSet);
			}
			else if(getLength()+s.length() == 2){
				if(!s.equalsIgnoreCase("."))
					return;
				super.insertString(offset,s, attributeSet);
			}
			else if(getLength()+s.length() == 3){
				try{
					Integer.parseInt(s);
				}catch(Exception ex){   //!< nur Integerwerte sind erlaubt
					Toolkit.getDefaultToolkit().beep(); 
					return ;
				}
				super.insertString(offset,s, attributeSet);
			}
		}
    }

Wenn ich danach im JTextFeld eintippe, funktioniert es ganz gut. Aber wenn ich copy-paste mache, geht es irgendwie nicht. zB. wenn ich versuche 2.0 zu kopieren und in JTextFeld einzufügen, klappt es nicht. Kann mir jemand erklären, wieso es nicht geht?

Habe auch diesen Link gelesen. Hier kann man aber mehrere "." stellen, das ist aber auch nicht erwünscht.
http://www.java-forum.org/bilder-gui-damit-zusammenhaengt/7213-jtextfield-dokumentarten.html#post37821

Gibt es oder einen einfachen Weg, indem ich Zahlen schon bei der Eingabe überprüfen kann. Was sollte ich zB. machen, wenn das obige Beispiel die Zahlen bis 20.0 akzeptiert. Dann kann "." entweder an der 2. Stelle oder an der 3. Stelle stehen. Muss ich dann immer so mit if-Bedingungen überprüfen?

Danke im Voraus.
 

KrokoDiehl

Top Contributor
Hm, das sieht hinreichend kompliziert aus. Versuch doch mal den Code so umzuschreiben, dass du zuerst der komplette Textinhalt erzeugt wird, dann kannst du den in ein Double parsen und prüfen ob er deinem Intervall entspricht. Das dürfte im Endeffekt zumindest lesbarer sein.

Am vorhanden Code vermute ich, dass im Teil
Java:
                try{
                    Integer.parseInt(s);
                }catch(Exception ex){   //!< nur Integerwerte sind erlaubt
                    Toolkit.getDefaultToolkit().beep(); 
                    return ;
                }
                super.insertString(offset,s, attributeSet);
Das Problem liegt. Wenn du nämlich ein s="2.0" reinkopierst, dann ist das eben kein Integer sondern ein Double.

Eine ganz andere Alternative könnte ein JSpinner sein. Hier kann man Unter- und Obergrenze der Eingabe direkt angaben und ist so ggfs intuitiver zu verwenden.
 

endidu

Mitglied
erstmal sorry für die späte Antwort.
Versuch doch mal den Code so umzuschreiben, dass du zuerst der komplette Textinhalt erzeugt wird, dann kannst du den in ein Double parsen und prüfen ob er deinem Intervall entspricht

Wie schaffe ich den kompletten Textinhalt zu erzeugen? Dann kann ich aber beim Eintippen nichts grenzen oder?

Eine ganz andere Alternative könnte ein JSpinner sein. Hier kann man Unter- und Obergrenze der Eingabe direkt angaben und ist so ggfs intuitiver zu verwenden.

Danke für den Tipp.. Da ich aber mit JGoodies arbeite, muss ich noch bisschen recherchieren, wie man JSpinner mit JGoodies binden kann. Ich werde noch daran arbeiten.
 

KrokoDiehl

Top Contributor
Genau, der DocumentListener ist eine gute Lösung, weil du damit alle Änderungen mitbekommst. Ansonsten sind InputVerifier dafür geeignet die Eingabe in Textfeldern zu prüfen und ggfs. sogar zu verbieten die Felder zu verlassen.
Letzterer ist für den Anfang einfacher -finde ich- bekommt die Änderung aber erst mit, wenn der Fokus aus dem Textfeld springt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Eingabeprüfung mittels Regexp Allgemeine Java-Themen 5
G KeyListener für JTextField Allgemeine Java-Themen 5
J Circumflex in JTextField Allgemeine Java-Themen 1
G JTextField Inhalt in einem Long einfügen Allgemeine Java-Themen 2
J JTextField nicht editierbar Allgemeine Java-Themen 5
G Aus JTextField Zahlen auslesen und random generieren Allgemeine Java-Themen 10
F JTextField funktioniert nicht Allgemeine Java-Themen 6
B JTextfield Allgemeine Java-Themen 9
L JTextfield wird nicht ausgelesen Allgemeine Java-Themen 7
T JTextField in Listener leeren Allgemeine Java-Themen 2
M jTextField --> Zwischenspeicher Allgemeine Java-Themen 20
M Datum einlesen aus jTextField Allgemeine Java-Themen 2
G JTextField mit Zeichenbeschränkung Allgemeine Java-Themen 7
E JTextField auf JWindow Allgemeine Java-Themen 2
P Suche Benis IP/Netzwerkadresse JTExtField Allgemeine Java-Themen 2
S JTable editieren + in JTextField schreiben Allgemeine Java-Themen 7
O Inhalt vom JTextfield im DebugMode ermitteln? Allgemeine Java-Themen 2
M Autovervollständigung im JTextField Allgemeine Java-Themen 3
P JTextField textfarbe schwarz auch wenn JTF deaktiviert ist Allgemeine Java-Themen 4
M Text in JTextfield einfügen sofort dann wird Text gekürzt Allgemeine Java-Themen 2
MQue JTextField Kommastellen Allgemeine Java-Themen 5
G Problem mit jTextField Allgemeine Java-Themen 7
D JTextfield für double werte Allgemeine Java-Themen 2
F JTextField Eingabe automatisch bestaetigen Allgemeine Java-Themen 17
D Probleme beim FAQ (JTextField: Dokumentarten) Allgemeine Java-Themen 5
H Position von JTextField Allgemeine Java-Themen 2
O String übergeben ist name eines JTextField wie zugreifen Allgemeine Java-Themen 9
Z JTextField mit Model kommunizieren Allgemeine Java-Themen 6
G Fragen zu JTextField bzw. JTextArea Allgemeine Java-Themen 2
G JTextField: Feld für Ausgabe von Meldungen Allgemeine Java-Themen 14
G Frage zu JTextField Allgemeine Java-Themen 2
E Field-Objekt in JTextField parsen Allgemeine Java-Themen 3
F KeyListener für JTextField Allgemeine Java-Themen 4
G Nur Integer Werte in JTextField Allgemeine Java-Themen 4
H JTextField Allgemeine Java-Themen 2
C JTextField Allgemeine Java-Themen 9
B TextListener bei JTextField Allgemeine Java-Themen 6
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Fehler: <ID> erwartet Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
Pinhg Discord JDA Bot - Fehler Allgemeine Java-Themen 3
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
L Fehler mit Boolean. (Glaube ich zumindest) Allgemeine Java-Themen 6
P Selenium Scriipt zeigt Fehler beim Import Allgemeine Java-Themen 3
O Fehler bei Variablen Allgemeine Java-Themen 2
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
M Kein Scanner Fehler durch falsche EIngabe Allgemeine Java-Themen 4
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
yakazuqi Fehler beim Laden. JDA (Java Discord API) Allgemeine Java-Themen 1
C Fehler bei der Benutzung von itextpdf Allgemeine Java-Themen 1
U Fehler beim Compillieren Allgemeine Java-Themen 13
x46 String Format Fehler Allgemeine Java-Themen 2
bueseb84 Fehler beim Import von Maven Dependencies aus lokalem artifactory Allgemeine Java-Themen 2
MiMa Datei verschieben hat einen Fehler?? Allgemeine Java-Themen 20
O xlsx Datei auslesen mit POI von Apache wirft seltsamen Fehler. Allgemeine Java-Themen 11
T Java-Quiz Code Fehler Allgemeine Java-Themen 10
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
T Fehler bei IF abfrage Allgemeine Java-Themen 8
C Fehler beim Debuggen von Listen Allgemeine Java-Themen 4
M Einheitenrechner - Fehler Allgemeine Java-Themen 12
D Erste Schritte Fehler mit negativen und 0 Zahlen im String Allgemeine Java-Themen 6
T Denk-Fehler? Allgemeine Java-Themen 4
A Finde den Fehler nicht. Allgemeine Java-Themen 7
H Class 'java.io.BuferedReader' is not present in JRE Emulation Libary | GWT Fehler?! Allgemeine Java-Themen 0
D Unbekannter Fehler Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 3
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
R Wo ist mein Fehler in der Methode DRINGEND Allgemeine Java-Themen 9
R Wo ist mein Fehler in diesem Code Allgemeine Java-Themen 7
I Fehler beim Ant-Package erstellen mit Java 9 Allgemeine Java-Themen 1
L Fehler bei der Ausführung einer Jar Allgemeine Java-Themen 2
T OOP Fehler im Design Allgemeine Java-Themen 9
Thallius Unfassbarer Fehler. Brauche Ideen zum Debuggen Allgemeine Java-Themen 9
U Eclipse MANIFEST fehler Allgemeine Java-Themen 7
I Fehler bei HashMaps Darstellung Allgemeine Java-Themen 10
R Classnotfoundexception Fehler Allgemeine Java-Themen 3
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
N Compiler-Fehler Warum erhalte ich einen Nullpointer Fehler? Allgemeine Java-Themen 2
N Prim's Algorithm - wo ist der Fehler? Allgemeine Java-Themen 3
J-Gallus Erste Schritte Wahrscheinlich Anfänger Fehler beim rechnen. Falsches Ergebnis. Allgemeine Java-Themen 9
M Line-Fehler Allgemeine Java-Themen 8
U Input/Output Warum wirft mir das Programm diesen Fehler? Allgemeine Java-Themen 6
RalleYTN Merkwürdiger Fehler mit JFrame im Vollbild Allgemeine Java-Themen 4
V AudioInputStream Fehler Allgemeine Java-Themen 1
J Interpreter-Fehler Fehler beim Verschlüsseln Invalid AES key length Allgemeine Java-Themen 1
G Fehler mit Vector Allgemeine Java-Themen 3
F Java Fehler "buildTableModel" Allgemeine Java-Themen 3
F Fehler in Zeile in Log schreiben Allgemeine Java-Themen 6
DanielsLPecke Input/Output Arduino komischer Fehler. Allgemeine Java-Themen 38
V JavaFX Fehler beim Starten einer Jar Allgemeine Java-Themen 7
S Hashtable Fehler Allgemeine Java-Themen 14
S Zwei String vergleichen, Fehler markieren Allgemeine Java-Themen 3
C Hilfe bei einer Fehler meldung Allgemeine Java-Themen 3
K Was ist mein Fehler? Allgemeine Java-Themen 2
Tausendsassa Compiler-Fehler Fertiges Programm mit Fehler Allgemeine Java-Themen 10
B Eclipse Nach Export einer .jar Fehler: Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 5
K Fehler beim erstellen von .jar Datei Allgemeine Java-Themen 3
P Java Fehler auf Win2008 Server java.io.FilePermission IE8 Version JRE 1.7.0_51 Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben