package org.myrobotlab.control.widget;
import javax.swing.JTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.PlainDocument;
public class JIntegerField extends JTextField {
static class IntegerDocument extends PlainDocument {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if (str != null) {
try {
Integer.decode(str);
super.insertString(offs, str, a);
} catch (NumberFormatException ex) {
}
}
}
}
private static final long serialVersionUID = 1L;
public JIntegerField() {
super();
}
public JIntegerField(int cols) {
super(cols);
}
@Override
protected Document createDefaultModel() {
return new IntegerDocument();
}
public int getInt() {
final String text = getText();
if (text == null || text.length() == 0) {
return 0;
}
return Integer.parseInt(text);
}
public void setInt(int value) {
setText(String.valueOf(value));
}
}