如何验证jTextField里面是不是数字 我希望验证jTextField里面的输入结果。如果不为数字就重新输入。。用什么方法验证 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【yuyistar】截止到2008-06-28 21:51:41的历史汇总数据(不包括此帖):发帖数:59 发帖分:1330 结贴数:54 结贴分:1180 未结数:5 未结分:150 结贴率:91.53 % 结分率:88.72 % 值得尊敬 用try,把jTextField里面的输入结果转换成Integer类型,有异常抛出就不是数字。 String s=JTextField对象.getText();try{ Integer.valueOf(s);}catch(Exception e){ System.out.prtintln("重新输入");} comm = JTextField().getText();然后用正则:"[0-9]+".matches(comm);或"\\d+".matches(comm); 我不会那个但我这样把它写到if里不行呀if("[0-9]+".matches(numberOneSql)){ System.out.println("为数字"); }我想判断后。在if里面执行想要的操作。要怎么写 初学者还是用放在try{}里判断是否发生类型转化好一点吧。正则不容易上手 楼主试试这个package Test;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.FocusAdapter;import java.awt.event.FocusEvent;import javax.swing.*;import javax.swing.border.EmptyBorder;public class RregulaExpression { private JFrame jf = new JFrame(); private JPanel p1 = new JPanel(); private JTextField text = new JTextField(); private JButton bok = new JButton(); public RregulaExpression(){ jInit(); Box vbox = new Box(BoxLayout.X_AXIS); vbox.add(text); vbox.add(bok); jf.add(vbox,"Center"); jf.getRootPane().setBorder(new EmptyBorder(20,20, 10, 10)); jf.setSize(200,100); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setVisible(true); } public void jInit(){ bok.setText("测试"); text.setPreferredSize(new Dimension(80,25)); text.setMinimumSize(new Dimension(80,25)); text.setMaximumSize(new Dimension(80,25)); bok.setPreferredSize(new Dimension(60,25)); bok.setMinimumSize(new Dimension(60,25)); bok.setMaximumSize(new Dimension(60,25)); bok.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { String s = text.getText().trim(); if (!s.matches("([0-9]?)*")) { JOptionPane.showMessageDialog(jf, "請輸入數字字符!"); } } }); text.addFocusListener(new FocusAdapter() { //文本框获得焦点,选中文本 public void focusGained(FocusEvent e) { if (e.getSource() != null && e.getSource() instanceof JTextField) { if (((JTextField) e.getSource()).isEditable()) { ((JTextField) e.getSource()).setText(((JTextField) e.getSource()).getText()); ((JTextField) e.getSource()).selectAll(); } } } //文本框失去焦点,自动在"."前面填零,例如".1"变成"0.1" public void focusLost(FocusEvent e) { if (e.getSource() != null && e.getSource() instanceof JTextField) { if (!(((JTextField) e.getSource()).getText()).matches("([0-9]?)*")) { JOptionPane.showMessageDialog(jf, "請輸入數字字符!"); } } } }); } public static void main(String [] args){ new RregulaExpression(); }} 可以这样做:String strTxt = txtAge.getText().trim();if(strTxt==null||strTxt.equals("")){ JOptionPane.showMessageDialog(null,"年龄不能为空"); return;}for(int i=0;i<strTxt.length;i++){ if(strTxt.charAt(i)<'0'||strTxt.charAt(i)>'9'){ JOptionPane.showMessageDialog(null,"年龄必须为数字,请重新输入"); return; }}如果是Java入门,希望对你有帮助!也可以使用楼上的正则表达式验证. 用正则不错另外,你可以写一个方法,传入一个String的参数判断里面的每一个字符public boolean IsNumeric(String s){for(int i=0;i<s.length();i++){if(s.charAt(i)>'9'||s.charAt(i)<'0'){return false;}}return true;} 能否直接通过键盘输入生成对象? JAVA程序在命令行里运行不了? 关于java:左还是右? 大哥大姐帮帮忙! 看得多了却有点理不出个头绪了 关于java环境 急!急!急!!!!!各位大虾,帮小弟一个忙,500分重金酬谢. 向大侠们求救:java使用Socket和win平台下的C程序通信,传输的信息包括数据、字符串,应该怎么进行??用对象流可以吗?? 用java画的曲线为什么在IE5.0是能打印出来,而在IE6.0和IE5.5时就不行(急!) 为什么在jb7中切换输入法会死掉 IO流的问题 谁帮 我看下这错在哪里了? 郁闷的乱码问题
楼主【yuyistar】截止到2008-06-28 21:51:41的历史汇总数据(不包括此帖):
发帖数:59 发帖分:1330
结贴数:54 结贴分:1180
未结数:5 未结分:150
结贴率:91.53 % 结分率:88.72 %
值得尊敬
try{
Integer.valueOf(s);
}catch(Exception e){
System.out.prtintln("重新输入");}
if("[0-9]+".matches(numberOneSql)){
System.out.println("为数字");
}
我想判断后。在if里面执行想要的操作。要怎么写
正则不容易上手
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;import javax.swing.*;
import javax.swing.border.EmptyBorder;
public class RregulaExpression {
private JFrame jf = new JFrame();
private JPanel p1 = new JPanel();
private JTextField text = new JTextField();
private JButton bok = new JButton();
public RregulaExpression(){
jInit();
Box vbox = new Box(BoxLayout.X_AXIS);
vbox.add(text);
vbox.add(bok);
jf.add(vbox,"Center");
jf.getRootPane().setBorder(new EmptyBorder(20,20, 10, 10));
jf.setSize(200,100);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
public void jInit(){
bok.setText("测试");
text.setPreferredSize(new Dimension(80,25));
text.setMinimumSize(new Dimension(80,25));
text.setMaximumSize(new Dimension(80,25));
bok.setPreferredSize(new Dimension(60,25));
bok.setMinimumSize(new Dimension(60,25));
bok.setMaximumSize(new Dimension(60,25));
bok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
String s = text.getText().trim();
if (!s.matches("([0-9]?)*")) {
JOptionPane.showMessageDialog(jf, "請輸入數字字符!");
}
}
});
text.addFocusListener(new FocusAdapter()
{
//文本框获得焦点,选中文本
public void focusGained(FocusEvent e)
{
if (e.getSource() != null && e.getSource() instanceof JTextField)
{
if (((JTextField) e.getSource()).isEditable())
{
((JTextField) e.getSource()).setText(((JTextField) e.getSource()).getText());
((JTextField) e.getSource()).selectAll();
}
}
}
//文本框失去焦点,自动在"."前面填零,例如".1"变成"0.1"
public void focusLost(FocusEvent e)
{
if (e.getSource() != null && e.getSource() instanceof JTextField)
{
if (!(((JTextField) e.getSource()).getText()).matches("([0-9]?)*")) {
JOptionPane.showMessageDialog(jf, "請輸入數字字符!");
}
}
}
});
}
public static void main(String [] args){
new RregulaExpression();
}
}
if(strTxt==null||strTxt.equals("")){
JOptionPane.showMessageDialog(null,"年龄不能为空");
return;
}
for(int i=0;i<strTxt.length;i++){
if(strTxt.charAt(i)<'0'||strTxt.charAt(i)>'9'){
JOptionPane.showMessageDialog(null,"年龄必须为数字,请重新输入");
return;
}
}
如果是Java入门,希望对你有帮助!也可以使用楼上的正则表达式验证.
判断里面的每一个字符
public boolean IsNumeric(String s){
for(int i=0;i<s.length();i++)
{
if(s.charAt(i)>'9'||s.charAt(i)<'0')
{
return false;
}
}
return true;
}