在Java Swing应用程序中保留对象值

时间:2011-05-18 13:59:46

标签: java swing hashmap

我有一个包含两个按钮的swing UI:1。将数据库值加载到Hashmap 2.将输入值与数据库值进行比较。 以前两个操作都是使用相同的按钮完成的,因此Hashmap已经填充并且输入被正确比较。但现在不是这样了。 调试后,我发现hashmap值为null,因为在第二次操作期间值会丢失。

如何解决这个问题。因此,当我单击第二个按钮时,哈希映射值仍然存在。

代码示例: Button1:正在加载 -

LoadMaps = new JButton( new AbstractAction("LoadMaps") {         

@Override         

public void actionPerformed( ActionEvent e ) {             

DRGCalc t = new DRGCalc();

t.loadHashMaps();
            }    
        }); 

Button2:计算 -

public void actionPerformed(ActionEvent evt) {

DRGCalc d = new DRGCalc();

int i = d.calculateDRG(Codes);

}

因为t和d是两个单独的对象,所以当我点击d时,t中的值不会持续存在。为此,我在calulateDRG调用中包含了按钮1中使用的方法,并且其工作正常,但我希望两者分开。这该怎么做? 感谢

1 个答案:

答案 0 :(得分:2)

DRGCalc t = new DRGCalc(); 

此对象仅存在于ActionListener中。如果希望对象可用于其他ActionListeners或类中的其他方法,则需要将其设为类变量。所以在你的课堂上你需要定义:

DRGCalc t; 

然后在ActionListener中将代码更改为:

t = new DRGCalc();