java中如何将一个类中的变量传到另一个类中

dir541541 2008-07-10 06:32:17
import java.awt.*;
import java.awt.event.*;

class aa extends Frame implements ActionListener{
TextField t;
Button b,bn;
static int num=0;
bb bframe;
aa(){
t=new TextField(10);
b=new Button("确定");
bn=new Button("另一窗口");
bframe=new bb();
setLayout(new FlowLayout());
add(t);
add(b);
add(bn);
setBounds(100,100,300,400);
setVisible(true);
validate();
b.addActionListener(this);
bn.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==b)
num=Integer.parseInt(t.getText());
else
bframe.setVisible(true);
}
}

class bb extends Frame{
TextField t;
bb(){
t=new TextField(10);
setLayout(new FlowLayout());
add(t);
t.setText(""+aa.num);
setBounds(200,200,200,200);
setVisible(false);
validate();
}
}

public class test{
public static void main(String args[]){
new aa();
new bb();
}
}


本意是想让类aa中的num传到类bb中,但实现不了.
why?
...全文
1730 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dir541541 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jingulang 的回复:]
Java code//你的代码结构有问题//bframe=new bb(); 这句去掉publicvoidactionPerformed(ActionEvent e){if(e.getSource()==b)
num=Integer.parseInt(t.getText());elsenewbb().setVisible(true);//这么改,点另一窗口时,才new bb()//你提前把 bb new出来的话,你怎么弄显示的都是0//不要在构造函数里做那么多操作。楼主自己再好好想想吧}
}publicclasstest{publicstaticvoidmain(String args[]){newaa();//new bb(); 这里…
[/Quote]
我也想过构造方法的问题,可是没这种改
真是太谢谢了,一语惊醒梦中人啊!!
jingulang 2008-07-10
  • 打赏
  • 举报
回复

//你的代码结构有问题

//bframe=new bb(); 这句去掉


public void actionPerformed(ActionEvent e){
if(e.getSource()==b)
num=Integer.parseInt(t.getText());
else
new bb().setVisible(true); //这么改,点另一窗口时,才new bb()
//你提前把 bb new出来的话,你怎么弄显示的都是0
//不要在构造函数里做那么多操作。楼主自己再好好想想吧

}
}




public class test{
public static void main(String args[]){
new aa();
//new bb(); 这里去掉 ,创建bb对象
}
}




dir541541 2008-07-10
  • 打赏
  • 举报
回复
本以为在一个类中定义一个static int型变量
在另一个类中直接用 类名.int型变量名 就可以访问
但程序却不能传值.另一个类中一直得到的都是0
dir541541 2008-07-10
  • 打赏
  • 举报
回复
谢谢楼上的解答
这个只是我测试一个类给另一个类传值写的.
本来是同学写一个订票系统,里面的查询模块要用到另外一个类里的变量.但那个变量的值一直是0
不能正确获得那个值.
这种怎么解决
老紫竹 2008-07-10
  • 打赏
  • 举报
回复
  public void actionPerformed(ActionEvent e) {
if (e.getSource() == b)
bframe.t.setText(t.getText()); // 这里调整一下就行了
else
bframe.setVisible(true);
}
jingulang 2008-07-10
  • 打赏
  • 举报
回复
static int num=0; 这个吗

静态的不用传 直接aa.num用就是了

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧