永发信息网

java 文本框只能输入字母 且只能有一个

答案:3  悬赏:60  手机版
解决时间 2021-04-09 12:41
  • 提问者网友:骨子里的高雅
  • 2021-04-08 23:00
if(e.getKeyChar() == KeyEvent.VK_ENTER ) {

output = guess2.getText().toUpperCase();

System.out.println("You Type: "+output);

System.out.println("Please Enter a new Letter");

letter=output.charAt(0);

guess2.setText("");

playing(letter);

}
这是我的code  现在问题是... 运行的时候 输入字母的时候可以无限输入还可以输入其他字符比如数字.  但是要求是只能输入一个字母 只能是字母
最佳答案
  • 五星知识达人网友:像个废品
  • 2021-04-08 23:23
继承PlainDocument,XXXDocument 重写insertString方法。
 public void insertString(int offs,
            String str,
            AttributeSet a) throws BadLocationException {
     if(offs > 0 && str.length() > 1) return;
     if(str.matches("[a-zA-Z]") super.insertString(offs, str, a);
 }

 JTextField tf = new JTextField(XXXDocument());或者使用JComboBox,直接选择吧。
全部回答
  • 1楼网友:封刀令
  • 2021-04-09 02:09
你这写代码只是对letter字符进行了限制,对文本框没有任何操作,当然爱输啥就输啥,只不过最后你得到的结果是首字母罢了,可以使用document 类来进行控制
  • 2楼网友:深街酒徒
  • 2021-04-09 00:39
<input type="text" onkeyup="value=value.replace(^[A-Za-z]{1})" maxlength="1"> 大概就是这个意思,在输入框里面用正则表达式限制输入的类型和长度。上面只是随手写的,忘记这个是否输入错误就输入不进去了。你可以baidu正则表达式学习下
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯