我制作了一个队列链表,我的主 jFrame
窗口称为“UI”,按下它后有一个按钮“Donate”,一个新的 jFrame
窗口称为“Donate”打开将先前 jFrame(UI)
的 Visibility
设置为 false
(setVisible(false)
)。
jFrame
“Donate”最后包含一些文本字段和一个“Donate Blood”按钮,填写文本字段后我们需要按下“Donate Blood”按钮,以便在文本字段中输入值应存储在 linkedlist
中,然后将 jFrame
"Donate"Visibility
设置为 false
和 jFrame
"UI"设置为 true 以返回到我们的主 jFrame
窗口。
问题是每次我点击“确认捐赠”时,我的数据都没有链接,例如:3 人捐赠
- 约翰
- 马特
- 哈利
当我遍历它时,我只能看到最后输入的名字,John
和 Matt
消失到哪里去了?
“UI” Action 监听器代码中的捐赠按钮:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
Donate d = new Donate();
this.setVisible(false);
d.setTitle("Donate - Blood Bank");
d.setVisible(true);
}
Donate Blood 按钮 Action 监听器代码调用捐赠 jFrame
窗口:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
UserInterface ui = new UserInterface();
BloodBank bb = new BloodBank();
enQueue(jTextField1.getText(), (int)jSpinner1.getValue(), (String)jComboBox1.getSelectedItem(), (String)jComboBox2.getSelectedItem());
first.Display();
this.setVisible(false);
ui.setTitle("Blood Bank");
ui.setVisible(true);
}
多次调试后我发现,如果我从按钮 Action 监听器中删除这行代码并阻止 jFrame
“捐赠”窗口不可见,我的队列链表工作正常,是setVisible(false)
丢弃我以前的保存数据?我该如何解决这个问题?
this.setVisible(false);
为了帮助更好地理解这里有一些截图:-
“UI”jFrame 中的捐赠按钮:
“捐赠”jFrame
窗口:
最佳答案
每次您在第一个 Action 监听器中创建一个新的 Donate
实例,并在第二个 Action 监听器中创建一个 UserInterface
实例。如果您的列表与这些框架的实例相关,那么您将丢失它们。此外,这不是明智的做法。您可以以某种方式创建两个框架的实例,以便可以从两个 Action 监听器访问它,然后只需在相同的实例上调用 setVisible()
。这应该可以解决您的问题。
关于java - 链表和 jFrames,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34387036/