我有两个类,Window和Register,我在Window中捕获一个String然后我需要在Register中使用。这是我的一段代码:
public class Window extends JFrame{
private String city;
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public Window() {
Interface();
}
public void Interface(){
botonContinuar = new JButton("Next");
botonContinuar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//This get the value from my list...
setCity((String) listaCity.getSelectedValue());
Register open=new Register();
}
});
botonContinuar.setBounds(164, 203, 89, 42);
panel.add(botonContinuar);
}
public class Register extends Window {
public Register() {
Window window=new Window();
System.out.println(window.getCity());
}
输出为:null:,当我期望从Window中的列表中捕获城市时。我是Java的新手,但我想问题是我创建了一个新的Window objetc然后我的所有属性都被初始化了,但我无法弄清楚如何避免这种情况。
提前致谢
答案 0 :(得分:0)
当您使用此构造函数时,将初始化city属性,您将看到输出。不管怎样,这个城市仍然是null
。
Window window=new Window("New York");
System.out.println(window.getCity());
另一种选择是使用public void setCity(String city)
方法,例如:
Window window=new Window();
window.setCity("New York");
System.out.println(window.getCity());
答案 1 :(得分:0)
一些事情:
如果您需要默认值,我建议您将其初始化为:
private String city = "defaultValue"; //or modify constructor to pass city value when object initializes.
答案 2 :(得分:0)
我看到两个问题
actionPerformed
动作才能设置城市。以下是一些建议:
new Window()
或Window调用new Register()
,但不能同时调用。{/ li>