import java.awt.*;
import java.awt.event.*;
public class test {
public static void main(String[] args) throws Exception {
new myframe().launch();
}
}
class myframe extends Frame{
TextField num1,num2,num3;
public void launch(){
num1=new TextField(10);
num2=new TextField(10);
num3=new TextField(15);
Label plus=new Label("+");
Button equal=new Button("=");
equal.addActionListener(new myframe2());
add(num1);
add(plus);
add(num2);
add(equal);
add(num3);
setLayout(new FlowLayout());
pack();
setVisible(true);
}
}
class myframe2 implements ActionListener {
myframe tf=new myframe();
public void actionPerformed(ActionEvent e){
int n1=Integer.parseInt(tf.num1.getText());
int n2=Integer.parseInt(tf.num2.getText());
tf.num3.setText(""+(n1+n2));
}
}
(程序能运行。。但出现 Unknown Source 问题。。为什么呢?)
import java.awt.event.*;
public class Test {
public static void main(String[] args) throws Exception {
new myframe().launch();
}
}
class myframe extends Frame{
TextField num1,num2,num3;
public void launch(){
setLayout(new FlowLayout());
num1=new TextField(10);
num2=new TextField(10);
num3=new TextField(15);
Label plus=new Label("+");
Button equal=new Button("=");
equal.addActionListener(new myframe2());
add(num1);
add(plus);
add(num2);
add(equal);
add(num3);
pack();
setVisible(true);
}
class myframe2 implements ActionListener {
public void actionPerformed(ActionEvent e){
int n1=Integer.parseInt(num1.getText());
int n2=Integer.parseInt(num2.getText());
num3.setText(""+(n1+n2));
}
}
}
你的代码问题在事件处理里的myframe和主窗口不是同一个。
class myframe2 implements ActionListener {
myframe tf=new myframe();
……
}
=======================
应该是死这里你又重新new了一个myframe。
为什么不相干的?我不是new了一个对象了吗,应该能访问该类的变量了吧。。
我的代码:
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.*;public class Testawts { Frame frame;
TextField tf1, tf2, tf3;
Label ladd;
Button btequ; public Testawts() {
frame = new Frame();
tf1 = new TextField(10);
tf2 = new TextField(10);
tf3 = new TextField(10);
ladd = new Label("+");
btequ = new Button("=");
} public void launchFrame() {
frame.add(tf1);
frame.add(ladd);
frame.add(tf2);
frame.add(btequ);
frame.add(tf3);
frame.setLayout(new FlowLayout());
frame.setVisible(true);
btequ.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
int n1 = Integer.parseInt(tf1.getText());
int n2 = Integer.parseInt(tf2.getText());
tf3.setText("" + (n1 + n2));
}
}); }
public static void main(String argS[]) {
new Testawts().launchFrame();
}
}