1
JTextField에서 심볼 검사를 실현하는 방법은 무엇입니까? 내 JTextField
자릿수 만보고 싶습니다. 내가해야 할 일?JTextField에서 심볼 검사를 실현하는 방법은 무엇입니까?
JTextField에서 심볼 검사를 실현하는 방법은 무엇입니까? 내 JTextField
자릿수 만보고 싶습니다. 내가해야 할 일?JTextField에서 심볼 검사를 실현하는 방법은 무엇입니까?
사용하십시오 JFormattedTextField 또는 DocumentFilter.
NumberOnlyFilter.java :
import javax.swing.*;
import javax.swing.text.*;
import java.util.regex.*;
public class NumberOnlyFilter extends DocumentFilter
{
public void insertString(DocumentFilter.FilterBypass fb, int offset, String text, AttributeSet attr) throws BadLocationException
{
StringBuilder sb = new StringBuilder();
sb.append(fb.getDocument().getText(0, fb.getDocument().getLength()));
sb.insert(offset, text);
if(!containsOnlyNumbers(sb.toString())) return;
fb.insertString(offset, text, attr);
}
public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attr) throws BadLocationException
{
StringBuilder sb = new StringBuilder();
sb.append(fb.getDocument().getText(0, fb.getDocument().getLength()));
sb.replace(offset, offset + length, text);
if(!containsOnlyNumbers(sb.toString())) return;
fb.replace(offset, length, text, attr);
}
/**
* This method checks if a String contains only numbers
*/
public boolean containsOnlyNumbers(String text)
{
Pattern pattern = Pattern.compile("[\\d]");
Matcher matcher = pattern.matcher(text);
boolean isMatch = matcher.matches();
return isMatch;
}
}
하고 당신이 그것을 좋아 사용할 수 있습니다
((AbstractDocument)yourTxtField.getDocument()).setDocumentFilter(new NumberOnlyFilter());
+1 'JFormattedTextField'의 경우 +1 –