Dada la confusión generada sobre el tema me he entretenido un poco:
/**
* JNumericField.
* JTextField numerico, bajo arquitectura MVC.
*
*/
import java.awt.Toolkit;
import java.text.*;
import javax.swing.text.*;
public class JNumericField extends javax.swing.JTextField {
private NumberFormat nf = NumberFormat.getInstance();
public JNumericField() {
super();
}
public JNumericField(String text) {
super(text);
}
public JNumericField(int columns) {
super(columns);
}
public JNumericField(String text, int columns) {
super(text, columns);
}
protected Document createDefaultModel() {
return new NumericDocument();
}
public double getValue() throws ParseException {
Number num = nf.parse(super.getText());
return num.doubleValue();
}
public void setValue(double d) {
super.setText(nf.format(d));
}
public void setFormat(NumberFormat format) {
nf = format;
}
static class NumericDocument extends PlainDocument {
public void insertString(int offset, String string, AttributeSet
attributes)
throws BadLocationException {
if (string == null) {
return;
} else {
for (int i=0; i<string.length(); i++) {
char c = string.charAt(i);
if ( !(Character.isDigit(c) ||
c==',' || c=='.') ) {
Toolkit.getDefaultToolkit().beep();
return;
}
}
super.insertString(offset, string, attributes);
}
}
}
}
________________________________________________
Salu2.
Contactar: http://www.terra.es/personal/eurojet/formmail.htm
NO SPAM: http://www.myjavaserver.com/servlet/eurojet.shtml
________________________________________________