Nur ein Komma in JTextField zulassen...

JDE4D

Mitglied
Hallo allerseits,

ich habe ein vorrausichtlich kleines Problem für euch, aber ein Kopfweh macher für mich.

Ich bin grad am Taschenrechner proggn...

Problem : Ich will in meinem JTextField nur ein Komma zulassen...

Habe schon mit Keylistener Buchstaben entfernt und das komma an sich zugelassen.

Jetzt fehlt die beschränkung auf 1/ TextField..

Hier der Code:
Java:
        eingabe2.addKeyListener(new KeyListener() {
        public void keyTyped(KeyEvent e) {
            if(Character.isDigit(e.getKeyChar()) || e.getKeyChar() == ','){
            
            }
                else e.consume();
                System.out.println(KeyEvent.VK_COMMA);
        
            
        
        }

                    public void keyPressed(KeyEvent e) {
                    }

                    public void keyReleased(KeyEvent e) {
                    }
                });

hoffe auf hilfe...
 
ich muss vllt dazu sagen das ich ich noch ganz neu in JAVA bin...😳

Bitte um erklärung, wie ? Wozu?

Also ich würde das formattedtextfield das kann alles was du brauchst.

How to Use Formatted Text Fields (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)

Zu deinem KeyListener wäre das Problem, dass du nur einzelne Zeichen einliest und überprüft was machst du aber wenn man setText oder wie oben geschrieben Copy&Paste macht dann kommen mehrer Zeichen auf einmal dann wird dein KeyListener umgangen. Darum ein DocumentenListener verwenden oder deinem Textfield ein eigenes Document übergeben.
How to Write a Document Listener (The Java™ Tutorials > Creating a GUI With JFC/Swing > Writing Event Listeners)
 
Zuletzt bearbeitet von einem Moderator:
Also ich würde das formattedtextfield das kann alles was du brauchst.

How to Use Formatted Text Fields (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)

Zu deinem KeyListener wäre das Problem, dass du nur einzelne Zeichen einliest und überprüft was machst du aber wenn man setText oder wie oben geschrieben Copy&Paste macht dann kommen mehrer Zeichen auf einmal dann wird dein KeyListener umgangen. Darum ein DocumentenListener verwenden oder deinem Textfield ein eigenes Document übergeben.
How to Write a Document Listener (The Java™ Tutorials > Creating a GUI With JFC/Swing > Writing Event Listeners)

gibtes einer möglichkeit ohne meine arbeit zu vernichten?
 
soo hat sich erledigt... habe es jetz so gemacht und es klappt:
Java:
        eingabe1.addKeyListener(new KeyListener() {
        public void keyTyped(KeyEvent e) {
            if(Character.isDigit(e.getKeyChar()) || e.getKeyChar() == ','){
                if(eingabe1.getText().contains(",") && e.getKeyChar() == ',')
                    e.consume();
            }
            else e.consume();
                System.out.println(KeyEvent.VK_COMMA);
                
                
                
        
            
        
        }

                    public void keyPressed(KeyEvent e) {
                    }

                    public void keyReleased(KeyEvent e) {
                    }
                });
 
Wo soll ich es aufrufen?

BTW: Das ist jetzt hier nur zur Übung, bin ganz stolz das ich das hingekriegt habe.. Die COPY&PASTE lücke ist jetzt für mich nicht das Problem. Verstehe allerdings das es zu eins werden kann..
 

Neue Themen


Zurück
Oben