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

标签 java swing hashmap

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

如何解决这个问题。这样当我单击第二个按钮时, HashMap 值仍然存在。

代码示例: 按钮1:加载-

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

@Override         

public void actionPerformed( ActionEvent e ) {             

DRGCalc t = new DRGCalc();

t.loadHashMaps();
            }    
        }); 

按钮2:计算-

public void actionPerformed(ActionEvent evt) {

DRGCalc d = new DRGCalc();

int i = d.calculateDRG(Codes);

}

由于 t 和 d 是两个独立的对象,因此当我单击 d 时,t 中的值不会保留。为此,我在 calulateDRG 调用中包含了按钮 1 中使用的方法,它工作正常,但我希望两者是分开的。这个怎么做? 谢谢

最佳答案

DRGCalc t = new DRGCalc(); 

该对象仅存在于 ActionListener 中。如果您希望该对象可供类中的其他 ActionListener 或其他方法使用,那么您需要将其设为类变量。所以在你的类中你需要定义:

DRGCalc t; 

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

t = new DRGCalc(); 

关于java - 在 Java Swing 应用程序中保留对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6045942/

相关文章:

java - 如何对值求和Java Hashmap

java - 需要按值排序的 HashMap ,其中值是状态不断变化的

java - 仅显示 List<Map<String, List<String>>> 中的 map 键

java - 发送消息导致异常

java - 响应式(Reactive)应用程序中的事务回滚

java - 使用 PhantomJS 和 GhostDriver 从 WebDriver 或 RemoteWebDriver 进行网络监控

javascript - 如何在javascript中画一条线?什么是 Swing/Awt?我需要下载它们吗?

java - 来自在 Fargate 集群上的 AWS ECS docker 容器中运行的 java 应用程序的 UnknownHostException

java - 从选项卡 Pane 中检索文本区域

java - Java Swing中实现 Sprite 的波动效果