1 package de.webman.wminstaller.tools; 2 3 import javax.swing.*; 4 import javax.swing.text.*; 5 6 import java.awt.Toolkit ; 7 import java.text.NumberFormat ; 8 import java.text.ParseException ; 9 import java.util.Locale ; 10 11 public class WholeNumberField 12 extends JTextField 13 { 14 private Toolkit toolkit; 15 private NumberFormat integerFormatter; 16 17 public WholeNumberField(int value, int columns) { 18 super(columns); 19 toolkit = Toolkit.getDefaultToolkit(); 20 integerFormatter = NumberFormat.getNumberInstance(Locale.US); 21 integerFormatter.setParseIntegerOnly(true); 22 setValue(value); 23 } 24 25 public int getValue() { 26 int retVal = 0; 27 try { 28 retVal = integerFormatter.parse(getText()).intValue(); 29 } 30 catch (ParseException e) { 31 toolkit.beep(); 34 } 35 return retVal; 36 } 37 38 public void setValue(int value) { 39 setText(integerFormatter.format(value)); 40 } 41 42 protected Document createDefaultModel() { 43 return new WholeNumberDocument(); 44 } 45 46 protected class WholeNumberDocument extends PlainDocument { 47 public void insertString(int offs, 48 String str, 49 AttributeSet a) 50 throws BadLocationException { 51 char[] source = str.toCharArray(); 52 char[] result = new char[source.length]; 53 int j = 0; 54 55 for (int i = 0; i < result.length; i++) { 56 if (Character.isDigit(source[i])) 57 result[j++] = source[i]; 58 else { 59 toolkit.beep(); 60 } 61 } 62 super.insertString(offs, new String (result, 0, j), a); 63 } 64 } 65 } 66 67 | Popular Tags |