在JTextField中,只允许数字和句点(.)进入的方法可以通过实现DocumentFilter接口来实现。下面是一个示例代码:
import javax.swing.*;
import javax.swing.text.AbstractDocument;
import javax.swing.text.DocumentFilter;
public class JTextFieldExample {
public static void main(String[] args) {
JTextField textField = new JTextField();
// 过滤只允许数字和句点(.)输入
DocumentFilter documentFilter = new DocumentFilter() {
public void insertString(DocumentFilter.FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException {
string = string.replaceAll("[\\D\\.]", ""); // 移除非数字和句点字符
fb.insertString(offset, string, attr);
}
public void remove(DocumentFilter.FilterBypass fb, int offset, int length) throws BadLocationException {
fb.remove(offset, length);
}
public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
text = text.replaceAll("[\\D\\.]", ""); // 移除非数字和句点字符
fb.replace(offset, length, text, attrs);
}
};
((AbstractDocument) textField.getDocument()).setDocumentFilter(documentFilter);
JFrame frame = new JFrame("JTextField Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(textField);
frame.pack();
frame.setVisible(true);
}
}
在这个示例代码中,我们首先创建了一个JTextField对象。然后,我们实现了一个DocumentFilter对象,它过滤掉非数字和句点字符,只允许数字和句点字符输入到JTextField中。最后,我们将这个DocumentFilter对象设置到JTextField对象的Document对象中,从而实现在JTextField中只允许数字和句点字符输入的功能。
领取专属 10元无门槛券
手把手带您无忧上云