首页 > 解决方案 > 从 JPanel(包含)更新 JFrame(容器或所有者),无需显式引用

问题描述

我有一堂课从JPanel

public class JPanelContained extends javax.swing.JPanel {

  public JPanelMidi() {
    // There is Not reference to JFrameContainer
  }

  private void repaintSelf() {
    // How I got the parent or Owner?
    parent.revalidate();
  }

}

我有一堂课从JFrame

public class JFrameContainer extends javax.swing.JFrame {
  javax.swing.JTabbedPane jtpWindows = new javax.swing.JTabbedPane();
  JPanelContained jpContained = new JPanelContained();
  jtpWindows.insertTab("Contained", null, jpContained, null, jtpWindows.getTabCount());
}

假设我们有一个实例JFrameContainer

  public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
      @Override
      public void run() {
        JFrameContainer jfContainer = new JFrameContainer();
        jfContainer.setVisible(true);
      }
    });
  }

现在,执行了一些更改jpContained

我需要 jfContainer.revalidate();内部调用的效果jpContained(没有明确的参考)。

jpContained是否可以在没有构造函数或 getter/setter 显式使用的情况下获得其所有者或容器(谁包含)的引用?

标签: javaswingjframejpanel

解决方案


推荐阅读