java将变量从一个类传递到另一个类

时间:2015-03-11 19:00:37

标签: java class

我的代码有错误。对不起,如果这是基本的,因为我是java新手 基本上,我无法检索String" 44418"来自班级CityChange 我知道原因是因为我在班级cc中创建了一个新实例MainPanel 但是我不知道其他任何方式。

public class CityChange extends JPanel {
  public CityChange() {
    JButton btn1 = new JButton("London")
    this.add(btn1);
    btn1.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent evt) {
        //London Yahoo Weather Code 44418 
        setCitySelected("44418");
      }
    });
  }
  public void setCitySelected(String citySelected) {
    this.citySelected = citySelected;
  }
  public String getCitySelected() {
    return citySelected;
  }
  private String citySelected;
}

public class MainPanel extends JPanel {
  public MainPanel() {
    CityChange cc = new CityChange();
    System.out.println(cc.getCitySelected()); //returns null instead of 44418
  }
}

请提供一些建议。谢谢。

2 个答案:

答案 0 :(得分:0)

出于时间原因,该值别无选择,只能是null

这里发生的事情"马上" (在初始时)是创建一个新的CityChange对象并获取并打印其citySelected。如果没人设置,则为null

只有在触发事件(点击按钮)后,它才会获得一个值,如果您打印该值,则会看到新值。

答案 1 :(得分:0)

代码setCitySelected("44418");仅在您调用此时未发生的方法public void actionPerformed(ActionEvent evt)时执行。此方法仅通过GUI中的Button调用,因此您首先需要至少一个带Button的简单窗口。这是一个很好的例子http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html