首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DocumentFilter只允许数字和句点(.)进入JTextField?

在JTextField中,只允许数字和句点(.)进入的方法可以通过实现DocumentFilter接口来实现。下面是一个示例代码:

代码语言:java
复制
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中只允许数字和句点字符输入的功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券