我有两个类,A和B.在第一个(A)中,我有一个包含一些项目的comboBox,我想在第二个类(B)中获取所选项目(通过单击某个按钮)。
所以我为comboBox做了一个getter,但是每当我在第二个类中调用getter时,我得到第一个项目,即使它没有被选中。
这是getter的代码(第一类(A)):
public String getModuleSelected(){
return comboModule.getSelectedItem().toString();
}
以下是我如何获得所选项目(B类):
A moy = new A();
System.out.println(moy.getModuleSelected());
它总是显示comboBox的第一个项目。即使它没有被选中。我在自己的类(A)中尝试了getter,它工作正常,我点击按钮后得到了正确的选择项。但是当我和另一个班级一起尝试时,我会得到一个Item,但总是第一个。
答案 0 :(得分:3)
这是你的问题:
A moy = new A(); // ******* this line****
System.out.println(moy.getModuleSelected());
您正在创建一个新的A
对象,一个与显示的A对象不同的对象,一个未对其进行任何选择的对象,并且它与显示的状态不同对象
解决方案是不执行此操作,不创建新的A
对象,而是仅在当前显示且活动的getModuleSelected()
对象上调用A
。您需要获得对此对象的有效引用,MCVE将帮助我们为您提供帮助。请注意,这通常通过构造函数或setter方法参数来完成。