java 文本框只能输入字母 且只能有一个 30
if(e.getKeyChar()==KeyEvent.VK_ENTER){output=guess2.getText().toUpperCase();System.ou...
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 现在问题是... 运行的时候 输入字母的时候可以无限输入还可以输入其他字符比如数字. 但是要求是只能输入一个字母 只能是字母 展开
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 现在问题是... 运行的时候 输入字母的时候可以无限输入还可以输入其他字符比如数字. 但是要求是只能输入一个字母 只能是字母 展开
3个回答
展开全部
<input type="text" onkeyup="value=value.replace(^[A-Za-z]{1})" maxlength="1">
大概就是这个意思,在输入框里面用正则表达式限制输入的类型和长度。上面只是随手写的,忘记这个是否输入错误就输入不进去了。你可以baidu正则表达式学习下
大概就是这个意思,在输入框里面用正则表达式限制输入的类型和长度。上面只是随手写的,忘记这个是否输入错误就输入不进去了。你可以baidu正则表达式学习下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以试着添加一个事件监控,输入的同时对文本框进行验证就可以了,方法比较笨,但很有用。
更多追问追答
追问
具体比如说....
追答
写一个类用来监听输入事件,输入时调用此类,在这个类中做你想实现的功能,例如检查输入是否是字母,不是就替换为空。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
继承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,直接选择吧。
追问
我还只是菜鸟, 我不太明白你说的, 你能把你的code直接加到我的里面吗?? 谢谢
我真的试了很多次用你的方法 但是我可能不会怎么用怎么加进去 还是用不了...
追答
import javax.swing.*;
import javax.swing.text.*;
public class DemoText {
public static void main(final java.lang.String[] args) {
java.awt.EventQueue.invokeLater(new java.lang.Runnable(){
@Override public void run(){
final JFrame frame = new JFrame("Demo");
frame.add(new JTextField(new DemoDocument(),"",1));
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
});
}
private static class DemoDocument extends PlainDocument {
@Override public void insertString(int offset, String s, AttributeSet as) throws BadLocationException {
if (offset > 0 || s.length() > 1) return;
if (s.matches("[a-zA-Z]")) {
super.insertString(offset, s, as);
} else {
return;
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询