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);
}
}

解决方案 »

  1.   

    写一个 getTextField的方法。 把T获取到你的这个类里面。。
      

  2.   

    package my.com.test;import java.awt.*;
    import java.awt.event.*;public class MyTestWindow  {
    Frame f = new Frame("我的窗"); TextField t = new TextField(12); Button b = new Button("点这"); Button b1 = new Button("退出"); dx d = new dx(t); 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(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    d.js();
    }
    });
    b1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    d1.ting();
    }
    });
    } public static void main(String[] args) {
    MyTestWindow m = new MyTestWindow();
    m.wd();
    }}class dx {
    TextField t = null;
    public dx(TextField tttt){
    t = tttt;
    }
    public void js() {
    int i = getClickNum(), j;
    j = i + 1;
    t.setText(String.valueOf(j)); // 就是此处错,想把j的值放到文本框里,知道是跨到win类调用t对象不成功,该怎么做呢?
    }
    public int getClickNum(){
    return Integer.parseInt(t.getText().equals("")?"0":t.getText());
    }
    }class dx1 {
    public void ting() {
    System.exit(0);
    }
    }这样可以吗?
      

  3.   

    谢谢leeny,编译可以通过,不过运行时有如下提示,什么意思呢:Exception in thread "main" java.lang.NoClassDefFoundError: MyTestWindow (wrong n
    ame: my/com/test/MyTestWindow)
      

  4.   

    MyTestWindow
    我把你类名改了win不合适
      

  5.   

    把那2个类,放到 main类里面,做成内部类。
      

  6.   

    内部类可以。
    跨类调用的话,如果需要调用的不是静态的,获得win类的实例,然后就可以调用了
    如果是静态的,直接可以调用
      

  7.   

    通过参数传递实现数据共享
    class dx{
        private TextField t;
        public dx(TextField t){
    this.t = t;
        }
        public void js(){
    int i=1,j;
    j=i+1;
    t.setText(""+j);        //
       }
    }
      

  8.   

    通过参数传递实现数据共享 
    class dx{ 
        private TextField t; 
        public dx(TextField t){ 
    this.t = t; 
        } 
        public void js(){ 
    int i=1,j; 
    j=i+1; 
    t.setText(""+j);        // 
      } 
    }=====好象也不行啊
      

  9.   

    1)
    lz检查下是否单击事件中代码是否有误
    if(e.getSource()==b) d.js();
    if(e.getSource()==b1) d1.ting();
    2)
    通过参数传递共享数据的时候是通过构造方法传递的,因此在
    创建新对象的时候应该给出相应的参数
    dx d=new dx(t);