View Javadoc
1 package edu.psu.geovista.category; 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 extends JTextField { 12 private Toolkit toolkit; 13 private NumberFormat integerFormatter; 14 15 public WholeNumberField(int value, int columns) { 16 super(columns); 17 toolkit = Toolkit.getDefaultToolkit(); 18 integerFormatter = NumberFormat.getNumberInstance(Locale.US); 19 integerFormatter.setParseIntegerOnly(true); 20 setValue(value); 21 } 22 23 public int getValue() { 24 int retVal = 0; 25 try { 26 retVal = integerFormatter.parse(getText()).intValue(); 27 } catch (ParseException e) { 28 // This should never happen because insertString allows 29 // only properly formatted data to get in the field. 30 toolkit.beep(); 31 } 32 return retVal; 33 } 34 35 public void setValue(int value) { 36 setText(integerFormatter.format(value)); 37 } 38 39 protected Document createDefaultModel() { 40 return new WholeNumberDocument(); 41 } 42 43 protected class WholeNumberDocument extends PlainDocument { 44 public void insertString(int offs, 45 String str, 46 AttributeSet a) 47 throws BadLocationException { 48 char[] source = str.toCharArray(); 49 char[] result = new char[source.length]; 50 int j = 0; 51 52 for (int i = 0; i < result.length; i++) { 53 if (Character.isDigit(source[i])) 54 result[j++] = source[i]; 55 else { 56 toolkit.beep(); 57 System.err.println("insertString: " + source[i]); 58 } 59 } 60 super.insertString(offs, new String(result, 0, j), a); 61 } 62 } 63 }

This page was automatically generated by Maven