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  现在问题是... 运行的时候 输入字母的时候可以无限输入还可以输入其他字符比如数字.  但是要求是只能输入一个字母 只能是字母
展开
 我来答
Torojian
2013-10-23
知道答主
回答量:2
采纳率:0%
帮助的人:2927
展开全部
<input type="text" onkeyup="value=value.replace(^[A-Za-z]{1})" maxlength="1">
大概就是这个意思,在输入框里面用正则表达式限制输入的类型和长度。上面只是随手写的,忘记这个是否输入错误就输入不进去了。你可以baidu正则表达式学习下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappqaigHzQyddrQM
2013-10-23 · 超过10用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:27万
展开全部
你可以试着添加一个事件监控,输入的同时对文本框进行验证就可以了,方法比较笨,但很有用。
更多追问追答
追问
具体比如说....
追答
写一个类用来监听输入事件,输入时调用此类,在这个类中做你想实现的功能,例如检查输入是否是字母,不是就替换为空。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友12ee0fd
2013-10-23 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:2344万
展开全部

继承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;
            }
        }
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式