| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 845 人关注过本帖
标题:[求助]怎样只输入数字
只看楼主 加入收藏
寂寞天涯人
Rank: 1
等 级:新手上路
帖 子:172
专家分:0
注 册:2006-3-18
收藏
 问题点数:0 回复次数:7 
[求助]怎样只输入数字
怎么这样在textField中限制输入,只输入数字。谢谢。急!
搜索更多相关主题的帖子: 数字 输入 textField 
2006-08-12 09:56
三颗珠子
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-8-11
收藏
得分:0 

获得其值时,然后加以限制。


2006-08-12 11:39
寂寞天涯人
Rank: 1
等 级:新手上路
帖 子:172
专家分:0
注 册:2006-3-18
收藏
得分:0 

能给出一段代码吗?


书籍,电影,音乐的互动交流平台http://www./
2006-08-12 13:51
sayid
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-7-3
收藏
得分:0 

new Integer(string x)
如果X包含字母就会抛出异常


2006-08-12 15:40
三颗珠子
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-8-11
收藏
得分:0 

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.regex.*;
import java.awt.event.ActionListener;
import java.util.EventListener;

public class TestTextField extends JFrame implements ActionListener
{
JTextField jtf = null;
JButton jb = null;
public TestTextField()
{
jtf = new JTextField(12);
jb = new JButton("确定");
jb.addActionListener(this);
Container con = this.getContentPane();
con.add(jtf,new BorderLayout().CENTER);
con.add(jb,new BorderLayout().SOUTH);
this.setSize(400,400);
this.setVisible(true);
}


public void actionPerformed(ActionEvent e) {
String s = jtf.getText();
String regex = "^\\d+$";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(s);
boolean flage=m.find();
if(flage == false )
{
JOptionPane.showMessageDialog(null,"只能输入数字");
}
}
public static void main(String args[])
{
new TestTextField();
}
}
简单的给你实现了一下,通过正则表达式就可以做到。你看看吧。主要是红色代码处。


2006-08-12 22:00
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
收藏
得分:0 

重新构造一个JTextField就可以做到限制长度和限制字符


package main;

import javax.swing.*;
import javax.swing.text.*;
import java.awt.Toolkit;

public class Test extends JPanel {
private JTextField numberField;

public Test() {
numberField = new JTextField(new NumberField(10),\"\",10); //创建一个以Document建造的长度为10,输入限制长度为10的文本框

add(numberField);
}

public static void main (String[] args) {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(new Test());
f.pack();
f.setVisible(true);
}

private class NumberField extends PlainDocument {
private int maxLength = 0;

public NumberField(int maxLength) { //文本的最大长度
this.maxLength = maxLength;
}

public void insertString(int offset,String str,AttributeSet att)
throws BadLocationException {
char[] source = str.toCharArray(); //将输入的字符转换为char型数组

if(getLength() + str.length() > maxLength) {
Toolkit.getDefaultToolkit().beep(); //如果长度超过预设长度则发出\"哔\"的一声
return;
}

for(char c:source) { //将字符通过循环提取出来 需要5.0以上版本的JDK
if(Character.isDigit(c)) { //判断输入的字符是否为数字
super.insertString(offset,str,att); //是数字则插入文本框内显示
}
}
}
}
}


向着软件工程师的目标前进!
2006-08-13 13:10
寂寞天涯人
Rank: 1
等 级:新手上路
帖 子:172
专家分:0
注 册:2006-3-18
收藏
得分:0 

谢谢以上的


书籍,电影,音乐的互动交流平台http://www./
2006-08-13 19:30
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
收藏
得分:0 
强,正则表达式

曾经以为百般艰难,蓦然回首,才发现已飞渡千山。。!
2006-08-13 20:16
快速回复:[求助]怎样只输入数字
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016562 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved