我有一个包含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();
.........
}
感谢
JComponent.getTopLevelAncestor()假定与其他回复者的条件相同。
我假设您的帖子有错误,JFrame包含JPanel。如果是这样,并且JPanel和JFrame之间不存在其他容器,那么获取父容器可能会获取JFrame的contentPane。如果您想获得JFrame,那么在JPanel上尝试SwingUtilities#getWindowAncestor方法。
否则,如果您试图获得由JFrame持有的JPanel,那么您可以递归地遍历它的组件(通过getComponents方法),但最简单的方法是在创建或添加一个或另一个时将JPanel的引用传递给JFrame。