Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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/7/sql-server/22.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_Swing_Validation_Actionlistener_Jtextfield - Fatal编程技术网

Java 如何防止用户输入数值

Java 如何防止用户输入数值,java,swing,validation,actionlistener,jtextfield,Java,Swing,Validation,Actionlistener,Jtextfield,我正在为一个俱乐部创建一个GUI,并试图设置一个测试,这样当提示新用户输入他们的名字时,他们将无法输入任何数值 以下是我目前掌握的代码: else if((this.jTextFieldName.getText() ){ errorMessage = "Name is not acceptable"; this.jTextFieldNameActionPerformed(requestFocusInWindow()); } 第一行中getText()之后的空格是

我正在为一个俱乐部创建一个GUI,并试图设置一个测试,这样当提示新用户输入他们的名字时,他们将无法输入任何数值

以下是我目前掌握的代码:

else if((this.jTextFieldName.getText() ){
        errorMessage = "Name is not acceptable";
        this.jTextFieldNameActionPerformed(requestFocusInWindow());
}
第一行中getText()之后的空格是我需要输入测试的地方,但我找不到一种方法来实现这一点。
有人能帮忙吗?

为什么不试试正则表达式呢


else如果(this.jTextFieldName.getText().matches(“.*\\d+.”){

为什么不尝试使用正则表达式呢


else if(this.jTextFieldName.getText().matches(“.*\\d+.”){

如果可以的话

jTextField.addKeyListener(new KeyAdapter() {
    public void keyTyped(KeyEvent e) {
      char c = e.getKeyChar();
      if (!((c >= 'a') && (c <= 'z') || (c >= 'A') && (c <= 'Z') ||
         (c == KeyEvent.VK_BACK_SPACE) ||
         (c == KeyEvent.VK_DELETE))) {
        getToolkit().beep();
        //JOptionPane.showMessageDialog(rootPane, "Enter only Alphabets");
        e.consume();
      }
    }
  });
jTextField.addKeyListener(新的KeyAdapter(){
public void keyTyped(KeyEvent e){
char c=e.getKeyChar();

如果(!((c>='a')&&(c='a')&&(c如果你可以的话)

jTextField.addKeyListener(new KeyAdapter() {
    public void keyTyped(KeyEvent e) {
      char c = e.getKeyChar();
      if (!((c >= 'a') && (c <= 'z') || (c >= 'A') && (c <= 'Z') ||
         (c == KeyEvent.VK_BACK_SPACE) ||
         (c == KeyEvent.VK_DELETE))) {
        getToolkit().beep();
        //JOptionPane.showMessageDialog(rootPane, "Enter only Alphabets");
        e.consume();
      }
    }
  });
jTextField.addKeyListener(新的KeyAdapter(){
public void keyTyped(KeyEvent e){
char c=e.getKeyChar();

如果(!((c>='a')&&(c='a')&&(c请尝试正则表达式
^[0-9]+$

您可以这样实现它:

this.jTextFieldName.getText().matches("^[0-9]+$")

尝试正则表达式
^[0-9]+$

您可以这样实现它:

this.jTextFieldName.getText().matches("^[0-9]+$")

swing中最好的方法是使用
PlainDocument
作为textComponent的文档。这是使用。看看如何在中实现。您必须重写
nsertString
方法,然后您可以在那里使用正则表达式。这里有一个使用DocumentFilter的方法。

swing中最好的方法是使用
PlainDodocument
作为textComponent的文档。它是使用的。看看如何在中执行它。您必须重写
ìnsertString
方法,然后在那里您可以使用您的正则表达式。这里有一个using DocumentFilter。

检查字符串API中的方法:您正在寻找正则表达式。检查字符串中的方法API:您正在寻找正则表达式。根据问题“他们将无法输入任何数值”的问题是,这只匹配完全数字的答案。因此“Abc123”与此模式不匹配。在开始时还需要一个“not”(“!”)。根据问题,“他们将无法输入任何数值”问题是,这只匹配完全数字的答案。因此“Abc123”与此模式不匹配。还需要一个“not”(“!”)一开始。实际上使用
keyListener
不是正确的方法。不要将
keyListener
用于文本字段。正确的方法是使用
DocumentFilter
甚至
JFormattedTextField
@peeskillet谢谢,我下次会跟你来。实际上使用
keyListener
不是正确的方法y、 不要对文本字段使用
KeyListener
。正确的方法是使用
DocumentFilter
甚至
JFormattedTextField
@peeskillet谢谢你,我下次会跟你来。