如何让jTextField只能输入数字啊?

zcsnet 2005-03-23 10:26:33
如题!
...全文
539 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaochuaner 2005-04-03
  • 打赏
  • 举报
回复
很简单啊,
先得到一个string,然后依次遍历他的每个元素,如果用户输入的有字母或者其他,那么就返回pop提示窗口》》》》》》》
for(int i=0;i<string.length();i++)
string.charAt(i)=="a,b,c...."等等,则pop
Terminator_2004 2005-04-01
  • 打赏
  • 举报
回复
我这里有段程序供你参考,不管对与不对!! 楼主给加点劳动分,

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DivideByZeroTest extends JFrame implements ActionListener
{
private JTextField inputField1,inputField2,outputField;
private int number1,number2,result;

public DivideByZeroTest()
{
super("Demonstrating Exceptions");

Container container=getContentPane();
container.setLayout(new GridLayout(3,2));

container.add(new JLabel("Enter numerator",SwingConstants.RIGHT));
inputField1=new JTextField();
container.add(inputField1);

container.add(new JLabel("Enter denominator and press Enter",SwingConstants.RIGHT));
inputField2=new JTextField();
container.add(inputField2);
inputField2.addActionListener(this);

container.add(new JLabel("Result",SwingConstants.RIGHT));
outputField=new JTextField();
container.add(outputField);

this.setSize(425,100);
this.setVisible(true);

}
public void actionPerformed(ActionEvent event)
{
outputField.setText("");
try{
number1=Integer.parseInt(inputField1.getText());
number2=Integer.parseInt(inputField2.getText());

result=quotient(number1,number2);
outputField.setText(String.valueOf(result));
}
//用于捕捉从字符串到数字的非法转换
catch(NumberFormatException n){
JOptionPane.showMessageDialog(this,
"You must enter two Integers","Invalid number Format",
JOptionPane.ERROR_MESSAGE);
}
catch(ArithmeticException e){
JOptionPane.showMessageDialog(this,
e.toString()+"\n请输入大于0的数!","Arithmetic Exception",
JOptionPane.ERROR_MESSAGE);
}
}
public int quotient(int numberator,int denominator)
throws ArithmeticException
{
return numberator/denominator;
}
public static void main(String args[])
{
DivideByZeroTest d=new DivideByZeroTest();
d.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

thrive_li 2005-03-31
  • 打赏
  • 举报
回复
JFormattedTextField extends JTextField adding support for formatting arbitrary values, as well as retrieving a particular object once the user has edited the text. The following illustrates configuring a JFormattedTextField to edit dates:

JFormattedTextField ftf = new JFormattedTextField();
ftf.setValue(new Date());
Once a JFormattedTextField has been created, you can listen for editing changes by way of adding a PropertyChangeListener and listening for PropertyChangeEvents with the property name value.

myhotsun 2005-03-31
  • 打赏
  • 举报
回复
编写自己的Document也不是一件容易的事啊!
powpow 2005-03-29
  • 打赏
  • 举报
回复
extends JTextDocument类

重载 insertString函数,如果是非数字就return就行啦

再TextField.setDocument(new 你的新Document类)
无欲则钢 2005-03-26
  • 打赏
  • 举报
回复
输入数据好象有事件源,你可以用这个
cyicecream 2005-03-25
  • 打赏
  • 举报
回复
在舰艇里做判断,每输入一个字符就判断一次,利用ASCII
zhaohao19853 2005-03-25
  • 打赏
  • 举报
回复
我以前也是在键盘事件里判断,但是在Document这个类了
有关于这方面的
yema55 2005-03-25
  • 打赏
  • 举报
回复
JFormattedTextField tft1 = new JFormattedTextField(NumberFormat.getIntegerInstance());
tft1.setValue(new Integer(123));
chenweionline 2005-03-24
  • 打赏
  • 举报
回复
textfield.setDocument(new IntegerDocument());



class IntegerDocument extends PlainDocument {
public void insertString(int offset, String s,
AttributeSet attributeSet) throws BadLocationException {
try {
Integer.parseInt(s);
}
catch(Exception ex) {
Toolkit.getDefaultToolkit().beep();
return;
}
super.insertString(offset, s, attributeSet);
}
}
御南 2005-03-23
  • 打赏
  • 举报
回复
使用正则表达式

62,627

社区成员

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

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