我无法理解为什么我无法在侦听器中获取正确的对象值。我创建了一个实例变量" plant"这是" Plant"的类型。然后在我的一个方法中,我创建了一个Plant对象并将其分配给"工厂变量"。然后我设置一些植物对象的字段,如" name"和" id"。一切正常但是...我创建了一个监听器,在按钮点击后打开一个新窗口。而对我来说奇怪的是,在这个监听器中,程序无法看到我之前设置的工厂对象字段。 这是我的代码:
appraisallinks-amc.com
resurgenstech.com
orpheusvr.com
trovvit.com
以下代码显示了GrowboxModel类的片段,其中设置了Plant对象的字段:
class Plant {
private plantName;
private gridId;
public String getName() {
return plantName;
}
public void setName(String plantName) {
this.plantName = plantName;
}
public int gridId() {
return gridId;
}
public void setGridId(int gridId) {
this.gridId = gridId;
}
}
下面是我的growboxController类的片段:
public Plant selectAll(int gridId) throws SQLException {
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
String query = "SELECT * FROM plant WHERE gridId = ?";
Plant plant = new Plant();
try {
preparedStatement = connection.prepareStatement(query);
preparedStatement.setInt(1, gridId);
resultSet = preparedStatement.executeQuery();
while(resultSet.next()) {
plant.setName(resultSet.getString("name"));
plant.setGridId(resultSet.getInt("gridId"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
preparedStatement.close();
resultSet.close();
}
return plant;
}
现在一切都很棒。该程序是植物对象的领域。但问题如下:
public Plant plant;
public GrowboxModel model = new GrowboxModel();
private void growboxCellContent(VBox plantAreaVbox) {
plant = model.selectAll(Integer.parseInt(plantAreaVbox.getId()));
if (plant.getName() == null) {
plantName.setText("EMPTY " + plantAreaVbox.getId());
} else {
System.out.println("FULL" + plant.getGridId());
}
}
这是" plant.getName()"等号为空,但应具有相同的名称。
我知道如何制作解决方法,但只是想知道是否有人知道为什么听众无法看到这些字段。
答案 0 :(得分:0)
在工厂类中,实际上没有分配任何实际设置变量的内容。
class Plant {
String plantName;
int id;
public String getName() {
return plantName;
}
public void setName(String plantName1) {
plantName = plantName1;
}
public int gridId() {
return gridId;
}
public void setId(int id1) {
id = id1;
}
}