"无法将AttributeSet解析为类型"
这就是为什么我试图使用另一种只允许数字的方法:
txtUsername.addKeyListener(new MyKeyListener());
public class MyKeyListener extends KeyAdapter{
public void keyPressed(KeyEvent ke){
System.out.println("Key pressed code = "+ke.getKeyCode());
if (ke.getKeyCode()>=48 && ke.getKeyCode()<=57)
return true;
else
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
但当然它不起作用,因为keyPressed方法是void.那么,为了在textfield中只打印数字怎么办?
编辑 - 在帖子的最后添加了我们能够实现的答案
这是我在SO的第一篇文章,所以我希望我可以问一切正确!
尽管发布了类似的问题,我搜索并没有找到我的问题的答案,所以我希望这不是转贴.
这就是ai得到的,一个JTextField用于接收用户输入的小应用程序,除此之外我还有一个DocumentFilter用户只能输入整数和句点以便接收代表重量的值.
我的问题是,我的DocumentFilter我无法过滤"复制粘贴"文本,我无法过滤选定的文本删除.
这是Filter的代码
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
/**
* The Class IntAndDotFilter.
*/
public class IntAndDotFilter extends DocumentFilter {
/** The period counter. */
private int periodCounter = 0;
/** The number counter. */
private int numberCounter = 0;
private boolean canRemove = true;
public void setCanRemove(boolean canRemove) {
this.canRemove = canRemove;
}
@Override
public void replace(FilterBypass fb, int offset, int length, String text,
AttributeSet attrs) throws …Run Code Online (Sandbox Code Playgroud)