Unterschiede

Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.

swing:jtextfield-size 2011/11/16 10:05 swing:jtextfield-size 2020/01/22 20:59 aktuell
Zeile 1: Zeile 1:
[[swing:swing|Java - AWT/Swing]]\\ [[swing:swing|Java - AWT/Swing]]\\
-====== JTextField, Zeichenzahl begrenzen ====== +====== JTextField, Anzahl der Zeichen begrenzen ====== 
-Im folgenden Code-Beisiel werden maximal 10 akzeptiert:\\+Im folgenden Code-Beisiel wird die maximale Anzahl von Zeichen auf 10 begrenzt:\\ 
 +Dazu wird ein eigenes Document "MaxSizeDocument" definiert.\\
\\ \\
<html> <html>
Zeile 25: Zeile 26:
<code java> <code java>
package com.sowas.snippets.jtextfield; package com.sowas.snippets.jtextfield;
 +import java.awt.BorderLayout;
 +import java.awt.Toolkit;
 +import javax.swing.JFrame;
 +import javax.swing.JTextField;
 +import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException; import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument; import javax.swing.text.PlainDocument;
-import javax.swing.text.AttributeSet; +  
-import java.math.BigDecimal+  
- +public class MaxSizeDocument extends PlainDocument { 
-import javax.swing.*+  int maxSize; 
-import java.awt.*+   
-import java.awt.event.*+  public MaxSizeDocument(int maxSize) { 
- +      this.maxSize = maxSize; 
- +  } 
-public class TextFieldDemo { +   
-  public static void main (final String [] ignored){ +  @Override 
-      JFrame frame = new JFrame ("Numerisches JTextField"); +  public void insertString (final int offset, final String text
-      JTextField tf = new JTextField(); +                            final AttributeSet attributeSet) throws BadLocationException { 
-      Document doc = tf.getDocument(); +     if (isNewLengthOk(text)) 
-      ((AbstractDocument) doc).setDocumentFilter(new DocumentNumberFilter(10)); +        super.insertString (offset, text, attributeSet)
-      frame.getContentPane().setLayout (new BorderLayout (0,0)); +     else 
-      frame.getContentPane().add(tv, BorderLayout.NORTH);+         Toolkit.getDefaultToolkit().beep()
 +   } 
 +  
 +  protected boolean isNewLengthOk(final String text) { 
 +      if (getLength() + text.length() <;= maxSize) 
 +         return true
 +     return false; 
 +   } 
 +  
 +  public static void main (final String [] ignored) { 
 +      JFrame frame = new JFrame ("JTextField-Demo"); 
 +      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 +      frame.getContentPane().setLayout(new BorderLayout (0,0)); 
 +      frame.getContentPane().add(new JTextField(new MaxSizeDocument(10), "", 0), BorderLayout.NORTH);
      frame.pack ();       frame.pack ();
      frame.setVisible (true);       frame.setVisible (true);

Eigene Werkzeuge
Werkzeuge

gratis Counter by GOWEB
seit 9.10.2007