求助一个好原始的问题,别笑啊,谢谢!
import java.awt.*;
import java.awt.event.*;
public class win implements ActionListener{
Frame f=new Frame("我的窗");
TextField t=new TextField(12);
Button b=new Button("点这");
Button b1=new Button("退出");
dx d=new dx();
dx1 d1=new dx1();
public void wd(){
f.setLayout(new FlowLayout(FlowLayout.CENTER,15,13));
f.add(t);
f.add(b);
f.add(b1);
f.setSize(150,120);
f.show();
b.addActionListener(this);
b1.addActionListener(this);
}
public static void main(String[] args){
win m=new win();
m.wd();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==b1) d.js();
if(e.getSource()==b1) d1.ting();
}
}
class dx{
public void js(){
int i=1,j;
j=i+1;
t.setText(j); //就是此处错,想把j的值放到文本框里,知道是跨到win类调用t对象不成功,该怎么做呢?
}
}
class dx1{
public void ting(){
System.exit(0);
}
}
------解决方案--------------------没有必要写dx,dx1这两个类,把那两个方法都写在win里直接调用就行了。
另外,我感觉有错的地方:
1.
if(e.getSource()==b1) d.js(); //b1是不是应该为b
2.
t.setText(j); //j应该是String,改为t.setText(""+j);
------解决方案--------------------你可以把win类的t也传到dx里,这样不就可以调用了吗?或者吧win,直接传到dx里,通过win调用t
------解决方案--------------------package 其它;
import java.awt.*;
import java.awt.event.*;
public class win implements ActionListener {
Frame f = new Frame("我的窗");
TextField t = new TextField(12);
Button b = new Button("点这");
Button b1 = new Button("退出");
dx d = new dx();
dx1 d1 = new dx1();
public void wd() {
f.setLayout(new FlowLayout(FlowLayout.CENTER, 15, 13));
f.add(t);
f.add(b);
f.add(b1);
f.setSize(150, 120);
f.setVisible(true)
b.addActionListener(this);
b1.addActionListener(this);
}
public static void main(String[] args) {
win m = new win();
m.wd();
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == b1)
t.setText(d.js()+"");
if (e.getSource() == b1)
d1.ting();
}
}
class dx {
public int js() {
int i = 1, j;
j = i + 1;
return j;
}
}
class dx1 {
public void ting() {
System.exit(0);
}
}