jframe的getParent是JPanel的属性

时间:2011-05-25 20:46:52

标签: java swing

我有一个包含jframe的jpanel,当我按下该jframe上的按钮时我想访问jpanel

我使用getParent()方法,但这不起作用

public class StorePanel extends javax.swing.JPanel {
private TableProducts tableproducts;
......
}

获取父级的jframe代码

private void confirmActionPerformed(java.awt.event.ActionEvent evt) {                                        

        StorePanel store=(StorePanel)this.getParent();
        store.getitemTable();
    .........
}

由于

2 个答案:

答案 0 :(得分:2)

JComponent.getTopLevelAncestor()假设与回复的其他人的条件相同。

答案 1 :(得分:1)

我认为您的帖子有误,JFrame包含JPanel。如果是这样,并且如果JPanel和JFrame之间不存在其他容器,则获取父级可能会获得JFrame的contentPane。如果要获取JFrame,请在JPanel上尝试SwingUtilities#getWindowAncestor方法。

否则,如果您正在尝试获取JFrame持有的JPanel,那么您可以通过它的组件递归迭代(通过getComponents方法),但最简单的方法是将JPanel的引用传递给JFrame当一个或另一个被创建或添加到另一个时。