2011-05-18 21 views
0

我有一个具有两个按钮的swing UI:1.将数据库值加载到Hashmap中2.将输入值与数据库值进行比较。 此前这两个操作都是使用相同的按钮完成的,因此Hashmap已经被填充并且输入被正确比较。但现在它并非如此。 调试后,我发现hashmap值为空,因为在第二次操作期间这些值会丢失。Java Swing应用程序中的持久对象值

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

代码示例: Button1的:Loading-

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两个单独对象,以便在t时的值不会当我点击d坚持。为此,我在calulateDRG调用中包含了按钮1中使用的方法,其工作正常,但我希望两者都是分开的。这个怎么做? 谢谢

+0

你需要给一些细节,也许有些代码片段,所以我们可以看看你是做。 – 2011-05-18 14:02:47

+0

与文森特Ramdhanie – mKorbel 2011-05-18 14:09:45

+0

同意加入代码片段 – JavaBits 2011-05-18 14:14:33

回答

2
DRGCalc t = new DRGCalc(); 

此对象只存在于ActionListener中。如果您希望该对象可用于您的类中的其他ActionListener或其他方法,那么您需要将它变为一个类变量。因此,在你的类,你需要定义:

DRGCalc t; 

然后在ActionListener的,你的代码更改为:

t = new DRGCalc(); 
+0

+1了解问题;-) – jfpoilpret 2011-05-18 15:17:21

+0

嘿感谢它工作正常。我已经在第一个动作侦听器中声明了新内容,并在第二个动作侦听器动作执行方法中使用了它。 – JavaBits 2011-05-19 06:23:20