java DocumentListener干扰我的JTextField
我试图做的是防止用户在我的输入中输入空字符串。现在,用户只能输入数字。然而,没有什么能阻止他们将文本字段留空。我想限制他们在程序空白时按我的按钮启动程序
现在,我的文本字段最初是空白的,按钮最初是灰色的。但当我输入一些东西时,按钮保持灰色。请记住,所有这些代码都在构造函数中
private JTextField plays = new JTextField(7);
DocumentFilter filter = new NumberFilter();
((AbstractDocument)plays.getDocument()).setDocumentFilter(filter);
plays.setToolTipText("Please input an integer.");
if(plays.getText().equals(""))
play.setEnabled(false);
private class NumberFilter extends DocumentFilter
{
public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs)
throws BadLocationException
{
fb.insertString(offset, text.replaceAll("[^0-9]", ""), attrs);
}
}
# 1 楼答案
现在,您的筛选代码只需进行编辑,以确保文档中只输入整数
插入后,您还需要添加额外的检查,查看是否输入了任何数据,然后根据需要启用/禁用文本字段
下面是一个使用DocumentListener执行此操作的示例:
对于DocumentFilter来说,这个概念也是一样的。插入或删除文本时需要进行检查