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:
come posso fare per passargli questa classe ad un JSpinner...oppure altre soluzioni?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); } }

Rispondi quotando