Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 限制用户输入_Java_Limit_User Input - Fatal编程技术网

Java 限制用户输入

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

我知道我可以检查用户输入以匹配某些字符等,但是在用户键入时是否有任何方法限制用户输入

e、 g:用户按下键盘上的8键,但这不会回声,因为只允许数字1-4。当用户按3键时,它会回显,程序继续进行

如果不使用库(我不允许使用),这是否可行?

这对我很有用:

如果要限制可输入的字符数,请:首先创建一个扩展PlainDocument的新类并添加一个限制器:

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();
        }
    }
});