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 现在问题是... 运行的时候 输入字母的时候可以无限输入还可以输入其他字符比如数字. 但是要求是只能输入一个字母 只能是字母
java 文本框只能输入字母 且只能有一个
答案:3 悬赏:60 手机版
解决时间 2021-04-09 12:41
- 提问者网友:骨子里的高雅
- 2021-04-08 23:00
最佳答案
- 五星知识达人网友:像个废品
- 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,直接选择吧。
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正则表达式学习下
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯