java - 重新加载 JinternalFrame Java

标签 java swing reload jinternalframe

我有一个包含大量 JInternalFrames 的 swing 应用程序。其中之一从数据库中加载表单加载数据。我需要它,以便在一个 Action 事件中,JInternalFrames 完全重新加载到它第一次显示数据库中的新数据时的状态。我尝试了几个选项,例如:

revalidate(), repaint(); updateUI()

但它们都不起作用。

 public void actionPerformed(ActionEvent ae) {
        Object obj = ae.getSource();
        if (obj == btnAdd) {

                    try {
                  ..................
                  revalidate();
                 // repaint();
                  //updateUI();

                    } catch (Exception db) {
                        JOptionPane.showMessageDialog(this, db,
                                "Error", JOptionPane.ERROR_MESSAGE);
        }
      }
    }

如何在不先关闭整个 JInternalFrame 的情况下重新加载它?

最佳答案

  1. revalidate()repaint()添加、删除、修改(更改大小、属性而不是值)的有效方法 一个新的 JComponent(s) 到已经可见的 GUI

  2. revalidate() & repaint() 可能是对可见 Swing GUI 的所有更改完成后的最后一行代码,

  3. revalidate()repaint() 没有将数据从数据库重新加载到 JComponents 作为值可见的 Swing GUI,那么您遇到了 Concurency in Swing 的问题

  4. 使用Runnable#Thread(需要将所有输出到Swing GUI的wrapp到invokeLater)或SwingWorker,有一些有趣的方法为你的工作 publish()proccess()done(),这些方法默认会通知 EDT

    <

关于java - 重新加载 JinternalFrame Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15659146/

相关文章:

java - Android摆脱DialogFragment float 边距

java - JOptionPane.showInputDialog 中的多个输入

java - 如何在绘制新矩形时触发自定义事件?

javascript - 如何在 Javascript 中重新加载没有 POSTDATA 警告的页面?

javascript - 使用vuejs在get方法上刷新组件

javascript - 如何在特定时间自动重新加载网页?

java - 在java中将ArrayList转换为Array

java - 在 replaceAll 调用中修改部分正则表达式

java - 调用重载方法时出现错误信息 "is ambiguous for the type Other"

java - 你如何在java swing包中制作一个专栏