键盘监听,文本框之内 只允许输入1-99之间数字,怎么写呀

 我来答
帐号已注销
2010-01-20 · TA获得超过5622个赞
知道大有可为答主
回答量:1459
采纳率:0%
帮助的人:1498万
展开全部
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;

class CustomedDocument extends PlainDocument {
private int limit;

public CustomedDocument (int limit) {
super();
this.limit = limit;
}

public void insertString (int offset, String str, AttributeSet attr) throws BadLocationException {
if (this.getLength() + str.length() > limit)
return;

char charArray[] = str.toCharArray();
for (char c : charArray)
if ((this.getLength() == 0 && c < '1') || (this.getLength() != 0 && c < '0') || c > '9')
return;
super.insertString(offset, str, attr);
}
}

public class Demo {
private JFrame mainFrame;
private JTextField txtInput;

public Demo () {
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension dms = tk.getScreenSize();
Font f = new Font("Arial", Font.PLAIN, 13);

mainFrame = new JFrame("Demo");
mainFrame.setLayout(null);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setBounds((int)dms.getWidth()/2-95, (int)dms.getHeight()/2-50, 190, 73);

txtInput = new JTextField();
txtInput.setBounds(5, 5, 165, 25);
txtInput.setFont(f);
txtInput.setDocument(new CustomedDocument(2));

mainFrame.add(txtInput);
mainFrame.setVisible(true);
}

public static void main (String args[]) throws InstantiationException, ClassNotFoundException, IllegalAccessException, UnsupportedLookAndFeelException {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
new Demo();
}
}
lylegend13
2010-01-20 · TA获得超过4696个赞
知道大有可为答主
回答量:1701
采纳率:0%
帮助的人:1845万
展开全部
为了这个简单的功能,去学功能庞大的正则表达式,恐怕有点小题大作,不妨对文本框加一个事件mouseOut

如果焦点离开了该文本框,则检查文本框内的值,如果满足条件>1&&<99则继续,否则焦点回来文本框,并提示“1<输入的数<99”,确认后清空文本框的内容

祝你成功!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友60d2023
2010-01-20
知道答主
回答量:16
采纳率:0%
帮助的人:0
展开全部
<input maxlength=2
onkeypress="var k=event.keyCode; return k>=48&&k<=57"
onpaste="return !clipboardData.getData('text').match(/\D/)"
ondragenter="return false"
style="ime-mode:Disabled"
>

参考资料: http://topic.csdn.net/t/20030930/11/2317178.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
虎舞动天
2010-01-20 · 超过25用户采纳过TA的回答
知道答主
回答量:197
采纳率:0%
帮助的人:0
展开全部
</script>
<input type="text" onkeypress="return blo(this,event)" id="t1">
<script type="text/javascript">
function blo(text1,oevent){
//var str = "0123456789";
//var str = /^[1-9]\d*|0$/; //匹配数字,就是符合这个就只能输入数字
var str = /^[a-zA-Z]+$/; //匹配字母
var key;
if(window.event){//key为该字符的按键代码
key = window.event.keyCode; //IE浏览器
}else if(oevent){
key = oevent.charCode; //Firefox浏览器
}
var schar = String.fromCharCode(key);//得到字符代码
if(str.test(schar)){
return s;
} else{
return false;
}
}

</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
农舒别寒梦
2019-05-31 · TA获得超过1143个赞
知道小有建树答主
回答量:442
采纳率:100%
帮助的人:4.4万
展开全部
<input
maxlength=2
onkeypress="var
k=event.keyCode;
return
k>=48&&k<=57"
onpaste="return
!clipboardData.getData('text').match(/\D/)"
ondragenter="return
false"
style="ime-mode:Disabled"
>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吉家隐靖琪
2019-12-29 · TA获得超过1111个赞
知道小有建树答主
回答量:3642
采纳率:100%
帮助的人:28.1万
展开全部
为了这个简单的功能,去学功能庞大的正则表达式,恐怕有点小题大作,不妨对文本框加一个事件mouseOut
如果焦点离开了该文本框,则检查文本框内的值,如果满足条件>1&&<99则继续,否则焦点回来文本框,并提示“1<输入的数<99”,确认后清空文本框的内容
祝你成功!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式