Java 数据更改时刷新Jframe

Java 数据更改时刷新Jframe,java,swing,jframe,awt-eventqueue,Java,Swing,Jframe,Awt Eventqueue,我创建了一个扩展jframe的类。 我有一个用于jframe和一些组件的边框布局,还有一个带有绝对布局的jpanel来容纳一些按钮和一个jcombobox。组合框保存表中的一些值。该表从mysql查询中获取值。我通过按钮删除或添加一些记录,然后更新表 除了不刷新值的组合框之外,所有的功能都很好。为了工作,我必须关闭jframe并再次打开它。我读了很多关于重新油漆等的文章和教程。。。但在我的情况下似乎什么都不起作用。action listener也是扩展jframe的同一个类 有办法吗? 请保持简

我创建了一个扩展jframe的类。 我有一个用于jframe和一些组件的边框布局,还有一个带有绝对布局的jpanel来容纳一些按钮和一个jcombobox。组合框保存表中的一些值。该表从mysql查询中获取值。我通过按钮删除或添加一些记录,然后更新表

除了不刷新值的组合框之外,所有的功能都很好。为了工作,我必须关闭jframe并再次打开它。我读了很多关于重新油漆等的文章和教程。。。但在我的情况下似乎什么都不起作用。action listener也是扩展jframe的同一个类

有办法吗? 请保持简单,因为我是java编程新手。
谢谢大家!

您是否听说过
SwingUtilities.invokeLater(new Runnable())
java.awt.EventQueue.invokeLater(new Runnable())

阅读此线程可能很有用:

可以添加到主方法的示例代码段:

java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
        JFrame frame = new JFrame();
        frame.setVisible(true);
                ...
    }
});

放一些代码看看发生了什么。SSCE将是理想的()您在操作后是否重新加载组合框中的值?您在更改JComboBox的型号后是否在JComboBox上尝试了
revalidate()
?@Vagelism:请参阅。我对JTables了解不多,但似乎可以使用它来更新
JComboBox
的值,因为
JTable
的内容被更新了。或者另一种方法是,当您从
数据库中获取值并将其放入
JTable
时,您可以将其添加到
列表中,您可以使用该列表更新
JComboBox
的内容,一旦你完成了更新
JTable
。好吧……我读了,说实话,我不明白很多事情。有关于如何使用此代码的示例吗?@GagandeepBali我认为您的资料更好,我只是想给OP一个想法。@Vagelism:您也需要了解SwingWorker,如何使用SwingWorker从数据库访问数据并在GUI中显示。您在运行时对GUI所做的任何更改都需要在事件调度器线程上完成。是的,这是我现在所做的,但不了解很多事情:(