java怎样限制文本框内容为数字?

sdfjkdsfjfd 2008-06-08 12:32:30
java怎样限制文本框内容为数字?
...全文
868 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
bananabear 2008-06-16
  • 打赏
  • 举报
回复
楼上是采用键盘监听器来控制的,这种方法可能会有一些副作用,而且要考虑键盘时间的多样性,
也就是没有从本质上解决问题。

这是最好的方法是使用JTextField.getDocument().addDocumentListener(DocumentListene)),
在DocumentListener中对JTextField中的内容就行检查并提示错误,是最好的。

因为只要JTextField中的内容被改变,无论通过什么途径(键盘,ctrl + v,del等)都会有效。
灰哥 2008-06-13
  • 打赏
  • 举报
回复
我来吧.
前面的我多看了好像多不怎么合意你看看我的要得不 ?
可以用js来控制!
代码:
<script type="text/javascript">
function isnum(){
if(event.keyCode>=65){
alert("你输入的必须是数字!");
event.returnValue=false;
}
}
</script>
.....
......
<input type="text" name="" onkeypress="isnum()">

xql80329 2008-06-13
  • 打赏
  • 举报
回复
学习了
harkue 2008-06-13
  • 打赏
  • 举报
回复
如果可以的话,也可以用JSpinner来替代。

private JSpinner aSpinner;
aSpinner.setEditor(new JSpinner.NumberEditor(aSpinner, "0000"));
  • 打赏
  • 举报
回复
控制上用键盘监听,显示上,用正则或者字符串匹配
qusic 2008-06-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 carnation003 的回复:]
Java code
MaskFormatter mask = new MaskFormatter("##########");
JFormattedTextField input = new JFormattedTextField(mask);



input文本框中只能输入10位数字了。

附带字符定义表:
字符 描述
# 任何有效数字,使用 Character.isDigit。
' 转义字符,用于避开任何具有特殊格式的字符。
U 任何字符 (Character.isLetter)。将所有小写字母映射为大写。
L 任何字符 (Character.…
[/Quote]
正解啊,简单方便!
xian_hf 2008-06-09
  • 打赏
  • 举报
回复
楼上说的好啊
gongyali2005 2008-06-09
  • 打赏
  • 举报
回复
正则表达式.
xiaolin4ever 2008-06-08
  • 打赏
  • 举报
回复
package num;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
* @author user
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class EnterNumber extends JFrame
{
JPanel panel;
JTextField enterNum;
public EnterNumber()
{
enterNum=new JTextField(5);
enterNum.addKeyListener(new EnterAction());
panel=new JPanel();
getContentPane().add(panel);
panel.add(enterNum);
addWindowListener(new WindowAction());
pack();
setVisible(true);
setLocation(300,300);
}
class WindowAction extends WindowAdapter
{
public void windowClosing(WindowEvent win_e)
{
System.exit(0);
}
}
class EnterAction extends KeyAdapter
{
public void keyPressed(KeyEvent enter_e)
{
System.out.println(enter_e.getKeyCode());
if(enter_e.getKeyCode()<48||enter_e.getKeyCode()>57)
{
JOptionPane.showMessageDialog(null,"请填写数字");
enterNum.setText("");
return;
}
}
}
public static void main(String args[])
{
new EnterNumber();
}
}
carnation003 2008-06-08
  • 打赏
  • 举报
回复

MaskFormatter mask = new MaskFormatter("##########");
JFormattedTextField input = new JFormattedTextField(mask);

input文本框中只能输入10位数字了。

附带字符定义表:
字符 描述
# 任何有效数字,使用 Character.isDigit。
' 转义字符,用于避开任何具有特殊格式的字符。
U 任何字符 (Character.isLetter)。将所有小写字母映射为大写。
L 任何字符 (Character.isLetter)。将所有大写字母映射为小写。
A 任何字符或数字(Character.isLetter 或 Character.isDigit)
? 任何字符 (Character.isLetter)。
* 所有字符。
sdfjkdsfjfd 2008-06-08
  • 打赏
  • 举报
回复
三楼的有详细代码吗?介绍一下
wlj11111 2008-06-08
  • 打赏
  • 举报
回复
利用事件啊,有一个事件是表示文本内容变化时,这个时间就可以了,只要你对文本框操作就会发生事件,然后利用if来判断。
sdfjkdsfjfd 2008-06-08
  • 打赏
  • 举报
回复
JBuilder2005 怎样限制文本框内容为数字?如果不是数字的话,显示出一个消息框,文本框内容清空、

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧