java编程如何使文本框不允许输入和粘贴除数字以外

java编程如何使文本框不允许输入和粘贴除数字以外的东西(如:字母,标点符号,空格等),如果检测到输入或粘贴的内容中有不是数字的则清空文本框并作出提示,请帮忙解决下,如身份证文本框等。
在此十分感谢 little902师傅。

首先你要给你的文本框加入监听.就是获得焦点时和失去焦点时.分别在里面调用一个对数字进行判断的方法.判断方法简单的就是loveweizaiwan了.思路就是先不管用户输入的是什么.当要提交前或者是要插库前对这个文本框内容进行验证.
这个是传统的验证思路.
若你需要实现一个实时验证的机制.那么就是需要向我开始时所说的.在文本框获得焦点时候进行验证.
可以给你的TextField 进行FocusListener的监听.两个方法分别调用一下方法

代码如下:

package com.text;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

public class InputNumber extends JFrame implements KeyListener
{
private static final long serialVersionUID = 1L;
private JTextField jtf;

private void initComponents()
{
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setForeground(Color.black);
setFont(new Font("Dialog", Font.PLAIN, 12));
setResizable(false);
setLayout(null);
add(getJTextField0());
setSize(300, 200);
setVisible(true);
}

private JTextField getJTextField0()
{
if (jtf == null)
{
jtf = new JTextField();
jtf.setBounds(40, 40, 155, 22);
jtf.addKeyListener(this);
}
return jtf;
}

public InputNumber()
{
initComponents();
}

private boolean isNumber(String num)
{
try
{
new Float("0" + num);
return true;
}
catch (Exception e)
{

return false;
}
}

public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub

}

public void keyReleased(KeyEvent e)
{
JTextField j = (JTextField) e.getComponent();
if(!isNumber(j.getText()))
{
JOptionPane.showMessageDialog(jtf, "请输入数字");
j.setText("");
}
}

public void keyTyped(KeyEvent e)
{
JTextField j = (JTextField) e.getComponent();
if(!isNumber(j.getText()))
{
JOptionPane.showMessageDialog(jtf, "请输入数字");
j.setText("");
}
}

public static void main(String aa[])
{

new InputNumber();
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-08-29
先添加键盘监听事件,然后写个正则表达式过滤一下文本框输入的内容,如果满足条件就正常显示,不满足就给出提示并清空内容。
第2个回答  2009-08-29
嘿嘿,可以用线程不断地检查嘛.不过,下面的这个代码虽可以不断检测,但是有问题的,就是每次发现输入了不是数字的字符后,光标就会到最前面去了.但希望这种思路对你有所帮助.
new Thread()
{
public void run()
{
while(true)
{
String s=gsfyT.getText();
if(s.length()>0)
{
char c=s.charAt(s.length()-1);
if(!(c>='0'&&c<='9'))
{
s=s.substring(0,s.length()-1);
gsfyT.setText(s);
}
try
{
Thread.sleep(200);
}catch(InterruptedException e){}
}
}
}
}.start();
第3个回答  2009-08-29
你说1楼的不对..那你是写C/S程序还是B/S程序..
B/S的就1楼的..
补充问题了我在来回答...

//写好了..

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class test extends JFrame implements KeyListener {

private JTextField jTextField1;
private String str="";
public static void main(String args[]) {
try {
test frame = new test();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
public test() {
super();
getContentPane().setLayout(null);
setBounds(100, 100, 360, 102);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jTextField1 = new JTextField();
jTextField1.setBounds(86, 10, 171, 25);
getContentPane().add(jTextField1);
jTextField1.addKeyListener(this);
}
public void keyPressed(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
public void keyReleased(KeyEvent e) {
if (jTextField1.getText().matches("[0-9]+")) {
str=jTextField1.getText();
}else{
JOptionPane.showMessageDialog(null, "你输入了非数字");
jTextField1.setText(str);
}
}
}
第4个回答  2009-08-29
在java代码里可以用一个接受你输入在文本框里的内容,
如:String accept为你接受的数据,但是你可以这样;
Integer type = new Integer(accept);
如果accept里有存在字母或符号的它就会跑出异常,所以你就可以再catch里面进行提示了。
你看是不是这样,
也不知道我这一百分能得到不???

所以啊,我这方法是万无一失的,只要取出的是字母、特殊字符,他都会抛出异常,你在catch里写代码提示就行了。一边分我能得到么???

你试出来了么??
我的分呢???

居然还没搞定啊????

java编程如何使文本框不允许输入和粘贴除数字以外
首先你要给你的文本框加入监听.就是获得焦点时和失去焦点时.分别在里面调用一个对数字进行判断的方法.判断方法简单的就是loveweizaiwan了.思路就是先不管用户输入的是什么.当要提交前或者是要插库前对这个文本框内容进行验证.这个是传统的验证思路.若你需要实现一个实时验证的机制.那么就是需要向我开始...

用java 编写程序,只允许输入1-100的整数,不允许输入字符串或文字或大于...
import java.util.Scanner;public class InputNumber { \/ param args \/ public static void main(String[] args) { String num;Scanner s = new Scanner(System.in);System.out.println("输入一个1-100的数字:");num = s.next();System.out.println(num);int a;try { a = Integer.value...

java swing里文本框控制不能输入汉字,或者输入字符串包含汉字在失去焦点...
题主你好,你可以给输入框监听失焦事件,然后获取文本的内容去进行正则匹配,如果符合条件就进行下面的业务操作,如果不符合,提示用户有格式问题需重新输入即可。

怎样文本框限制输入8个文字?
判断 (到数值 (取文本长度 (编辑框1.内容)) ≠ 到数值 (“16”))→编辑框1.禁止 = 真 信息框 (“超出范围!”, 0, )

java 如何让jtextarea只允许复制粘贴,禁止手动编辑键盘输入等~坐等高 ...
用你的JTextArea 对象调用setEditable(false)方法,貌似就这样就行了,setEditable()方法表示是否允许直接编辑JTextArea里的内容

...就是一个文本框中,不允许输入汉字,正则表达式怎么写?
function isChn(str){ var reg = \/^[u4E00-u9FA5]+$\/;if(!reg.test(str)){ return false;} return true;} 试试这个。

网页设计如何设计只有数字输入网页设计如何设计只有数字输入的
1、首先在excel页面输入数字106,然后选中数字6进行鼠标右击。2、然后在弹出来的页面中选择【设置单元格格式】。3、进入到格式设置的页面以后,接下来在此页面将【上标】前面给勾选,并且在页面的下方点击【确定】按钮。4、最后就可以看到10^6次方被成功地打出来了。在excel中如何设置输入数字的位数?我...

在vb中,如何使文本框中只允许输入数字
vb编程中往往要限制文本框中只允许输入数字,防止获取文本框的内容时发生类型不匹配的错误。下面介绍实现限制文本框中只允许输入数字的方法。新建一个标准EXE程序。绘制界面,添加一个 Textbox控件,改名为 txbNumber。编写代码。在代码窗口中,添加 txbNumber_KeyPress事件。查ASCII码表,得到0的ASCII码是48...

Java编程中如何把文本框中的字符串显示为星号
与使用 echoChar 设置的 java.awt.TextField 是根本一致的。单独提供它可以较方便地安全更改 JTextField 的 UI 而不影响密码输入。注: 默认情况下,JPasswordField 禁用输入法;否则,当使用输入法组合时,输入字符应该是可见的。如果应用程序需要输入法支持,请使用继承方法 enableInputMethods(true)。

eclipse如何设置不用输入首字母就可以提示补全代码
可是eclipse不允许输入这么的字符,文本框中最多允许输入4个字符,因此要通过修改配置文件的方法实现,具体操作步骤如下 1. 打开Eclipse,然后“window”→“Preferences”2. 选择“java”,展开,“Editor”,选择“Content Assist”。3.选择“Content Assist”,然后看到右边,右边的“Auto Activation”下面...

相似回答