Java 如何防止用户输入数值
我正在为一个俱乐部创建一个GUI,并试图设置一个测试,这样当提示新用户输入他们的名字时,他们将无法输入任何数值 以下是我目前掌握的代码: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()之后的空格是
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谢谢你,我下次会跟你来。