ciao ragazzi... ho un problemino. Ho creato un JSpinner ma non riesco a fare inserire solo numeri... ci sono riuscito solo con un JTextField in questo modo:
codice:
InternationalFormatter internationaFormatter=new
InternationalFormatter(NumberFormat.getNumberInstance())
{
protected DocumentFilter getDocumentFilter()
{
return filter;
}
private DocumentFilter filter = new IntFilter();
};
mq1 = new JFormattedTextField(internationaFormatter);
ovviamente con l'aiuto di una classe che mi controlla se vengono inseriti caratteri:
codice:
class IntFilter extends DocumentFilter
{
public void replace(FilterBypass fb, int offset, int length, String string, javax.swing.text.AttributeSet attr)
throws BadLocationException
{
if (string != null)
{
StringBuilder builder = new StringBuilder(string);
for (int i = builder.length() - 1; i >= 0; i--)
{
int cp = builder.codePointAt(i);
if (!Character.isDigit(cp)&& cp != ',')
{
builder.deleteCharAt(i);
if (Character.isSupplementaryCodePoint(cp))
{
i--;
builder.deleteCharAt(i);
}
}
}
string = builder.toString();
}
super.replace(fb, offset, length, string, attr);
}
}
come posso fare per passargli questa classe ad un JSpinner...oppure altre soluzioni?