我有一段代码,我想用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);
}
}
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);
}
}
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);
}
}
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);
}
}
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);
}
}
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);
}
}