# JTextField nur Eingabe von Zahlen erlauben



## Gast (24. Jan 2008)

Ist es möglich in ein Textfeld nur die Eingabe von Zahlen zu zu lassen oder muss man das mit einem Listener machen?


----------



## Jonnsn (24. Jan 2008)

denkanstoss: hier


----------



## Gast (24. Jan 2008)

ja das mit dem matches hab ich ja schon

```
if(text4.matches("[A-Z]*")
	    			  || text1.matches("[A-Z]*"))
	    	  {
				  //Dialogfenster anzeigen
				  JOptionPane.showMessageDialog(null,"Es können nur Zahlen eingegeben werden."); 
	    	  }
```

aber wenn ich die eingabe mach zeigt er mir das nicht an - also benötige ich doch einen Listener? Es ging mir ja nicht darum wie ich die Eingabe prüfe, sondern ob man vielleicht vorher schon festlegen kann, dass man nur Zahlen eingeben darf ohne Listener.


----------



## Niki (24. Jan 2008)

Entweder mit JFormattedTextField oder

```
JTextField tf = new JTextField();
   tf.setDocument(createNumericDocumentWithMaxLength(3));

private Document createNumericDocumentWithMaxLength(final int maxLength){
      
      Document doc = new PlainDocument(){
         @Override
         public void insertString(int offs, String str, AttributeSet a)
               throws BadLocationException {
            if(getLength() + str.length() > maxLength)
               return;
            if(!str.matches("^[\\d]*$"))
               return;
            
            
            super.insertString(offs, str, a);
         }
      };
      return doc;
      
   }
```


----------



## Gast (24. Jan 2008)

wow - hab jetzt deine zweite Variante einfach übernommen und es macht das was ich möchte, jetzt werd ich mich mal dran machen dass ganze zu verstehen - danke


----------

