如何在不同的JFrame中更改数据库后重新加载从数据库加载数据的JComponent?

时间:2015-11-08 13:55:14

标签: java eclipse swing jframe

我创建了两个JFrame。第一个包含一个JComboBox,它列出了从数据库中获取的数据,第二个JFrame包含了数据,这些数据是第一个JFrame中JComboBox列出的数据库。通过第二个JFrame向数据库添加数据后,我关闭了第二个JFrame并在第一个JFrame中检查了JComboBox中的列表,但它没有显示更新的列表。我检查了数据库,那里正在添加数据。如果我关闭第一个JFrame并重新打开它,JComboBox只加载更新的数据。我想在JComboBox中加载更新的列表而不关闭JFrame(第一个)。有没有办法做到这一点?(可能需要重新加载整个第一个Jframe)。

1 个答案:

答案 0 :(得分:1)

  

和第二个JFrame将数据添加到数据库

您不应该使用多个JFrame。应用程序应该只有一个框架。您应该使用JDialog作为子窗口。

  

通过第二个JFrame向数据库添加数据后,我关闭了第二个JFrame,并在第一个JFrame中检查了JComboBox中的列表,但它没有显示更新的列表。

您的子窗口负责更新组合框。所以当你点击" Save"对话框的按钮,ActionListener代码需要做两件事:

  1. 使用新值更新数据库
  2. 使用新值更新组合框。因此,这意味着当您创建JDialog时,您需要将组合框(或ComboBoxModel)作为参数传递给该类,以便您可以更新组合框。或者,您需要从对话框中返回一个值,以便在关闭对话框时可以更新组合框。