我有一段代码,我想用try-catch语句来替换其中的if-else语句,就是在整个代码中不出现一个if-else只能用try-catch,而且只能是TextField而不能用JTextField.不知该如何实现.而且我的代码执行后,我在TextField中输入字符后,后面的Label中可以显示出内容,当在TextField中删除字符时,后面的Label中的内容总是会留下一个字符,必须要多按一下退格键才可以完全删除干净,在输入数字时,当输入一个数字时后面的Label也无反应,只有在输入第二个数字时,Label才有显示.且也只能删除两次才能删除干净,不知为什么.希望大家能帮助我.我的代码如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class MyFrame extends Frame 
{
TextField tf = new TextField(15); 
Label label2 = new Label();
public MyFrame(String title)
{
super(title);
init();
}
private void init()
{
this.setSize(500, 100);
this.setLocation(300, 300);
this.setLayout(new FlowLayout(FlowLayout.LEADING, 0, 20));

Label label1 = new Label("请输入整数型数据:");
this.add(label1);
this.add(tf);
this.add(label2);
tf.addKeyListener(new KeyAdapter()
{
public void keyTyped(KeyEvent e)
{
label2.setSize(200, 20);
if(e.getKeyChar() >= 'a' && e.getKeyChar() <= 'z' )
{
label2.setText("您的输入有误!!");
}
else label2.setText(tf.getText());
}
});

this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}class Test
{
public static void main(String [] args)
{
MyFrame f = new MyFrame("整数判断程序");
f.setVisible(true);
}
}

解决方案 »

  1.   

    import java.awt.BorderLayout;
    import java.awt.Dimension;import javax.swing.JFrame;
    import javax.swing.JPanel;
    import java.awt.Frame;
    import java.awt.FlowLayout;
    import java.awt.TextField;
    import java.awt.*;
    import java.awt.event.TextEvent;
    import java.awt.event.TextListener;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowAdapter;
    public class Frame2 extends Frame {
        TextField textField1 = new TextField();
        Label label1 = new Label();
        public static void main(String args[]){
       new Frame2();
        }
        public Frame2() {
            try {
                jbInit();
            } catch (Exception exception) {
                exception.printStackTrace();
            }
        }    /**
         * Component initialization.
         *
         * @throws java.lang.Exception
         */
        private void jbInit() throws Exception {
            setLayout(null);
            setSize(new Dimension(400, 300));
            setTitle("数字测试");
            setVisible(true);
            this.addWindowListener(new Frame2_this_windowAdapter(this));
            textField1.setBounds(new Rectangle(4, 96, 187, 24));
            textField1.addTextListener(new Frame2_textField1_textAdapter(this));
            label1.setBounds(new Rectangle(201, 95, 119, 26));
            this.add(textField1);
            this.add(label1);
        }    public void textField1_textValueChanged(TextEvent e) {
            String strnum=textField1.getText();
            if(strnum.matches("[0-9]*")){
                label1.setText(strnum);
            }else{
                label1.setText("你输入的不是数字");
            }
        }    public void this_windowClosing(WindowEvent e) {
            System.exit(0);
        }
    }
    class Frame2_this_windowAdapter extends WindowAdapter {
        private Frame2 adaptee;
        Frame2_this_windowAdapter(Frame2 adaptee) {
            this.adaptee = adaptee;
        }    public void windowClosing(WindowEvent e) {
            adaptee.this_windowClosing(e);
        }
    }
    class Frame2_textField1_textAdapter implements TextListener {
        private Frame2 adaptee;
        Frame2_textField1_textAdapter(Frame2 adaptee) {
            this.adaptee = adaptee;
        }    public void textValueChanged(TextEvent e) {
            adaptee.textField1_textValueChanged(e);
        }
    }
      

  2.   

    UP~~~~大量内部视频培训资料,详情请查看:http://hi.baidu.com/bilemo
      

  3.   

    package isnumber;import java.awt.BorderLayout;
    import java.awt.Dimension;import javax.swing.JFrame;
    import javax.swing.JPanel;
    import java.awt.Frame;
    import java.awt.Label;
    import java.awt.*;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.TextEvent;
    import java.awt.event.TextListener;/**
     * <p>Title: </p>
     *
     * <p>Description: </p>
     *
     * <p>Copyright: Copyright (c) 2007</p>
     *
     * <p>Company: </p>
     *
     * @author not attributable
     * @version 1.0
     */
    public class Frame1 extends Frame {
        Label label1 = new Label();
        TextField textField1 = new TextField();
        public static void main(String args[]){
            Frame f=new Frame();
        }
        public Frame1() {
            try {
                jbInit();
            } catch (Exception exception) {
                exception.printStackTrace();
            }
        }    /**
         * Component initialization.
         *
         * @throws java.lang.Exception
         */
        private void jbInit() throws Exception {
            this.setBounds(300,200,300,200);
            this.setVisible(true);
            setTitle("Frame Title");
            this.addWindowListener(new Frame1_this_windowAdapter(this));
            this.setLayout(null);
            label1.setBounds(new Rectangle(192, 58, 161, 29));
            textField1.setBounds(new Rectangle(7, 56, 174, 30));
            textField1.addTextListener(new Frame1_textField1_textAdapter(this));
            this.add(label1);
            this.add(textField1);
        }    public void this_windowClosing(WindowEvent e) {
            System.exit(0);
        }    public void textField1_textValueChanged(TextEvent e) {
            try{
                Integer i=new Integer(textField1.getText());
                label1.setText(i.toString());
            }
            catch(Exception ex){
                label1.setText("你输入的不是数字");
            }
        }
    }
    class Frame1_this_windowAdapter extends WindowAdapter {
        private Frame1 adaptee;
        Frame1_this_windowAdapter(Frame1 adaptee) {
            this.adaptee = adaptee;
        }    public void windowClosing(WindowEvent e) {
            adaptee.this_windowClosing(e);
        }
    }
    class Frame1_textField1_textAdapter implements TextListener {
        private Frame1 adaptee;
        Frame1_textField1_textAdapter(Frame1 adaptee) {
            this.adaptee = adaptee;
        }    public void textValueChanged(TextEvent e) {
            adaptee.textField1_textValueChanged(e);
        }
    }
      

  4.   

    package isnumber;import java.awt.BorderLayout;
    import java.awt.Dimension;import javax.swing.JFrame;
    import javax.swing.JPanel;
    import java.awt.Frame;
    import java.awt.Label;
    import java.awt.*;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.TextEvent;
    import java.awt.event.TextListener;/**
     * <p>Title: </p>
     *
     * <p>Description: </p>
     *
     * <p>Copyright: Copyright (c) 2007</p>
     *
     * <p>Company: </p>
     *
     * @author not attributable
     * @version 1.0
     */
    public class Frame1 extends Frame {
        Label label1 = new Label();
        TextField textField1 = new TextField();
        public static void main(String args[]){
            Frame f=new Frame();
        }
        public Frame1() {
            try {
                jbInit();
            } catch (Exception exception) {
                exception.printStackTrace();
            }
        }    /**
         * Component initialization.
         *
         * @throws java.lang.Exception
         */
        private void jbInit() throws Exception {
            this.setBounds(300,200,300,200);
            this.setVisible(true);
            setTitle("Frame Title");
            this.addWindowListener(new Frame1_this_windowAdapter(this));
            this.setLayout(null);
            label1.setBounds(new Rectangle(192, 58, 161, 29));
            textField1.setBounds(new Rectangle(7, 56, 174, 30));
            textField1.addTextListener(new Frame1_textField1_textAdapter(this));
            this.add(label1);
            this.add(textField1);
        }    public void this_windowClosing(WindowEvent e) {
            System.exit(0);
        }    public void textField1_textValueChanged(TextEvent e) {
            try{
                Integer i=new Integer(textField1.getText());
                label1.setText(i.toString());
            }
            catch(Exception ex){
                label1.setText("你输入的不是数字");
            }
        }

    }
    class Frame1_this_windowAdapter extends WindowAdapter {
        private Frame1 adaptee;
        Frame1_this_windowAdapter(Frame1 adaptee) {
            this.adaptee = adaptee;
        }    public void windowClosing(WindowEvent e) {
            adaptee.this_windowClosing(e);
        }
    }
    class Frame1_textField1_textAdapter implements TextListener {
        private Frame1 adaptee;
        Frame1_textField1_textAdapter(Frame1 adaptee) {
            this.adaptee = adaptee;
        }    public void textValueChanged(TextEvent e) {
            adaptee.textField1_textValueChanged(e);
        }
    }
      

  5.   

    import java.awt.*; 
    import java.awt.event.*; 
    import javax.swing.*; class MyFrame extends Frame  

    TextField tf = new TextField(15);  
    Label label2 = new Label(); 
    public MyFrame(String title) 

    super(title); 
    init(); 

    private void init() 

    this.setSize(500, 100); 
    this.setLocation(300, 300); 
    this.setLayout(new FlowLayout(FlowLayout.LEADING, 0, 20)); Label label1 = new Label("请输入整数型数据:"); 
    this.add(label1); 
    this.add(tf); 
    this.add(label2); 
    tf.addKeyListener(new KeyAdapter() 

    public void keyTyped(KeyEvent e) 

    label2.setSize(200, 20); 
    try

    int i=Integer.parseInt(e.getKeyChar()+"0");
    System.out.println(e.getKeyChar());
    System.out.println(i);
    label2.setText(tf.getText()+e.getKeyChar()); 

    catch(Exception ei)
    {

    label2.setText("您的输入有误!!"); 
    }
    }
    }); this.addWindowListener(new WindowAdapter() 

    public void windowClosing(WindowEvent e) 

    System.exit(0); 

    }); 

    } public class Test 

    public static void main(String [] args) 

    MyFrame f = new MyFrame("整数判断程序"); 
    f.setVisible(true); 

    }