У меня есть ошибка для кода ниже. Извините, если это слишком просто, поскольку я новичок в java.
В принципе, я не могу получить строку «44418» из класса CityChange
.
Я знаю, причина в том, что я создал новый экземпляр cc
в классе MainPanel
.
Однако я не знаю другого способа сделать это.java Передача переменных из одного класса в другой
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
}
}
Прошу дать вам несколько советов. Спасибо.
Вы можете указать код для 'setCitySelected()' и 'getCitySelected()' – sircapsalot
Он вернет ожидаемое значение после того, как вы нажмете на свою кнопку. Разве это не так? Только прослушиватель кнопки выбирает ожидаемое значение. – muasif80
Вы нажали кнопку, чтобы спровоцировать действиеПереформированное действие? Как вы знаете, что он возвращает null, так как вы не печатаете или не привязываетесь к возвращенному значению? Что-то здесь отсутствует. – Gladhus