Java 限制用户输入
我知道我可以检查用户输入以匹配某些字符等,但是在用户键入时是否有任何方法限制用户输入 e、 g:用户按下键盘上的8键,但这不会回声,因为只允许数字1-4。当用户按3键时,它会回显,程序继续进行 如果不使用库(我不允许使用),这是否可行?这对我很有用: 如果要限制可输入的字符数,请:首先创建一个扩展PlainDocument的新类并添加一个限制器:Java 限制用户输入,java,limit,user-input,Java,Limit,User Input,我知道我可以检查用户输入以匹配某些字符等,但是在用户键入时是否有任何方法限制用户输入 e、 g:用户按下键盘上的8键,但这不会回声,因为只允许数字1-4。当用户按3键时,它会回显,程序继续进行 如果不使用库(我不允许使用),这是否可行?这对我很有用: 如果要限制可输入的字符数,请:首先创建一个扩展PlainDocument的新类并添加一个限制器: import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationEx
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
public class JTextFieldLimit extends PlainDocument { //Added limited textfield so you can only enter one char
private static final long serialVersionUID = 3452547874756361487L;
private int limit;
public JTextFieldLimit(int limit) {
super();
this.limit = limit;
}
public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException {
if (str == null)
return;
if ((getLength() + str.length()) <= limit) {
super.insertString(offset, str, attr);
}
}
}
import javax.swing.text.AttributeSet;
导入javax.swing.text.BadLocationException;
导入javax.swing.text.PlainDocument;
公共类JTextFieldLimit扩展了PlainDocument{//添加了有限的textfield,因此您只能输入一个字符
私有静态最终长SerialVersionId=3452547475756161487L;
私有整数限制;
公共JTextFieldLimit(整数限制){
超级();
这个极限=极限;
}
public void insertString(int offset、String str、AttributeSet attr)引发BadLocationException{
如果(str==null)
返回;
如果((getLength()+str.length())='1')&(c“插件”?您是在现有应用程序框架的上下文中编写的,还是仅仅是Swing?我想我使用了错误的单词(我不是英语:),我的意思是我不能从Java.util导入任何东西,或者其他任何东西(当然只是scanner)首先,您应该解释一下您在谈论什么,Web界面(哪个框架?),控制台/命令行输入或图形用户界面(哪个工具包,普通AWT,Swing或SWT?),等等
JTextField field = new JTextField(1); //1 stands for a maximum of 1 character allowed to be entered in this text field
field.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
char c = e.getKeyChar();
//if that character is between 1 and 9 then continue, else make the systems beep sound
//so in your case, this should be 1 and 4
if (!((c >= '1') && (c <= '9') || (c == KeyEvent.VK_BACK_SPACE) || (c == KeyEvent.VK_DELETE))) {
getToolkit().beep();
e.consume();
}
}
});