我有一个包含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();
.........
}
由于
答案 0 :(得分:2)
JComponent.getTopLevelAncestor()假设与回复的其他人的条件相同。
答案 1 :(得分:1)
我认为您的帖子有误,JFrame包含JPanel。如果是这样,并且如果JPanel和JFrame之间不存在其他容器,则获取父级可能会获得JFrame的contentPane。如果要获取JFrame,请在JPanel上尝试SwingUtilities#getWindowAncestor方法。
否则,如果您正在尝试获取JFrame持有的JPanel,那么您可以通过它的组件递归迭代(通过getComponents方法),但最简单的方法是将JPanel的引用传递给JFrame当一个或另一个被创建或添加到另一个时。