\Вот создание JTextField:
hourlyWageInput = new JTextField("7.25");
DocumentFilter filter = new UppercaseDocumentFilter();
((AbstractDocument) hourlyWageInput.getDocument()).setDocumentFilter(filter);
hourlyWageInput.setHorizontalAlignment(JTextField.CENTER);
add(hourlyWageInput);
Вот мой DocumentFilter:
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
public class UppercaseDocumentFilter extends DocumentFilter {
public void replace(DocumentFilter.FilterBypass fb, int offset, int length,
String text, javax.swing.text.AttributeSet attr)
throws BadLocationException {
fb.insertString(offset, text.replaceAll("\\D", ""), attr);
}
}
Это автоматически удаляет все буквы и символы из JTextField.
Однако мне было интересно, знает ли кто-нибудь место со всеми командами, похожими на «\ D». Мне потребовалось некоторое время, чтобы найти нужную информацию.
Кроме того, код, который у меня есть сейчас, также предотвращает . от типов, которые мне нужны, так как я работаю с двойниками. Есть идеи?
Спасибо! Удивительно, как много я сегодня узнал. Я кодил 13 часов подряд.
FilterBypass
, и вы, вероятно, также захотите переопределитьinsertString
. - person Tom Hawtin - tackline   schedule 07.08.2012