Я знаю, что это распространенный вопрос, но я пытаюсь создать TextField, который принимает только числа int, и это почти сделано, вот код:
Создать текстовое поле:
nome = new JFormattedTextField();
nome.setHorizontalAlignment(SwingConstants.CENTER);
nome.setColumns(2);
DocumentFilter filtro = new FiltroNumero();
((AbstractDocument) nome.getDocument()).setDocumentFilter(filtro);
panel.add(nome);
Фильтр документов:
public class FiltroNumero extends DocumentFilter{
public void insertString(DocumentFilter.FilterBypass fb, int offset, int length,
String text, javax.swing.text.AttributeSet attr)
throws BadLocationException {
fb.insertString(offset, text.replaceAll("[^-0-9]", ""), attr);
}
}
При этом TextField будет принимать только числа и «-», но это означает, что «1-» является возможным значением.
Мне нужен способ заставить текстовое поле не принимать минус после первого символа.
Если кто-то может мне помочь, я буду очень рад :)
-
), и что он находится в начале, когда добавляются значения... - person MadProgrammer   schedule 23.10.2014-
, удалить его из входящегоString
и вставить в начало документа, в зависимости от того, существует он или нет ... поэтому нажатие-
всегда поместите его в начале (или в конце в зависимости от потребностей) - person MadProgrammer   schedule 23.10.2014JSpinner
сSpinnerNumberModel
.. - person Andrew Thompson   schedule 23.10.2014