我正在为俱乐部创建GUI并尝试设置测试,以便在提示新用户输入其名称时,他们将无法输入任何数值。
这是我到目前为止的代码:
else if((this.jTextFieldName.getText() ){
errorMessage = "Name is not acceptable";
this.jTextFieldNameActionPerformed(requestFocusInWindow());
}
第一行中getText()之后的空格是我需要输入测试的地方,但我找不到这样做的方法。 有人可以帮忙吗?
答案 0 :(得分:4)
摆动的最佳方式是使用PlainDocument
作为textComponent的文档。这是使用DocumentFilter。在Text Component Features implementing a DocumentFilter中查看如何执行此操作。您必须覆盖ìnsertString
方法,然后才能使用正则表达式。在这里,您使用DocumentFilter example。
答案 1 :(得分:1)
为什么不尝试使用正则表达式?
else if(this.jTextFieldName.getText().matches(".*\\d+.*") ){
答案 2 :(得分:0)
如果可以,那么
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();
}
}
});
答案 3 :(得分:0)
尝试使用正则表达式^[0-9]+$
。
您可以像这样实现:
this.jTextFieldName.getText().matches("^[0-9]+$")