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

Java 如何重新加载在不同JFrame中更改数据库后从数据库加载数据的JComponent?,java,eclipse,swing,jframe,Java,Eclipse,Swing,Jframe,我已经创建了两个jframe。第一个包含一个JComboBox,它列出从数据库获取的数据,第二个JFrame将数据添加到第一个JFrame中的JComboBox列出的数据库中。在通过第二个JFrame向数据库添加数据之后,我关闭了第二个JFrame,并在第一个JFrame中检查了JComboBox中的列表,但它没有显示更新的列表。我检查了数据库,那里正在添加数据。如果我关闭第一个JFrame并重新打开它,JComboBox只加载更新的数据。我想在不关闭JFrame(第一个)的情况下在JCombo

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

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

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

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

您的子窗口负责更新组合框。因此,当您单击对话框的“保存”按钮时,ActionListener代码需要做两件事:

  • 使用新值更新数据库
  • 用新值更新组合框。因此,这意味着在创建JDialog时,需要将组合框(或ComboBoxModel)作为参数传递给该类,以便更新组合框。或者,您需要从对话框中返回一个值,以便在对话框关闭时可以更新组合框
    可能需要一些代码来显示框架和数据库是如何定义的,有很多不同的方法来实现这一点,根据谁有权访问哪些内容,可能会出现很多错误。请参阅