java吧 关注:1,300,138贴子:12,842,259
  • 2回复贴,共1

求帮忙看个小程序

取消只看楼主收藏回复

import java.awt.FlowLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class TF {
public static void main(String[] args){
new TFFrame() ;
}
}
class TFFrame extends JFrame{
TextField num1 ,num2 ,num3 ;
public TFFrame(){
num1 =new TextField(10) ;
num2 =new TextField(10) ;
num3 =new TextField(15) ;
JButton button =new JButton("=") ;
button.addActionListener(new MyEvent1()) ;
JLabel label =new JLabel("+") ;
add(num1) ;
add(label) ;
add(num2) ;
add(button) ;
add(num3) ;
setLayout(new FlowLayout()) ;
setVisible(true) ;
pack() ;
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
}
}
class MyEvent1 implements ActionListener{
/*TFFrame tf =null ;
public MyEvent1(TFFrame tf){
this.tf =tf ;
}*/
TFFrame tf =new TFFrame() ;
public void actionPerformed(ActionEvent e) {
int n1 =Integer.parseInt(tf.num1.getText()) ;
int n2 =Integer.parseInt(tf.num2.getText()) ;
tf.num3.setText(""+(n1+n2)) ;
}
}
这个程序出错在主类new了一个TFFrame的对象,在MyEvent里也new了一个TFFrame对象,这样做为什么会错


1楼2014-05-05 10:50回复
    定义内部类确实可以,就是想知道这样为什么会错,以后也可以避免类似的错误


    3楼2014-05-05 11:01
    收起回复
      2026-03-24 12:16:50
      广告
      不感兴趣
      开通SVIP免广告
      明白了,是死循环,不停在TFFrame和MyEvent两个类直接循环,原因在于在TFFrame中new了MyEvent,之后再MyEvent中new了TFFrame,以至于死循环


      4楼2014-05-05 11:37
      回复