使用Getter for ComboBox时的假值

时间:2017-01-17 22:03:03

标签: java swing combobox setter getter

我有两个类,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,但总是第一个。

1 个答案:

答案 0 :(得分:3)

这是你的问题:

A moy = new A();  // ******* this line****
System.out.println(moy.getModuleSelected());

您正在创建一个新的A对象,一个与显示的A对象不同的对象,一个未对其进行任何选择的对象,并且它与显示的状态不同对象

解决方案是不执行此操作,不创建新的A对象,而是仅在当前显示且活动的getModuleSelected()对象上调用A。您需要获得对此对象的有效引用,MCVE将帮助我们为您提供帮助。请注意,这通常通过构造函数或setter方法参数来完成。