我有多个面板嵌套在其他面板中,我想从那里得到 JPanel 。
我试过了:
Component[] components = this.getComponents();
对于JFrame和JPanel,但它只返回javax.swing.JRootPane
而不是JPanels
。
是否有其他我不知道的函数会返回JFrame或JPanel中的所有 JPanels ?
答案 0 :(得分:1)
您正在访问JFrame的JRootPane,这是一个包含JLayeredPane的组件,一个包含contentPane的组件,一个保存JPanel的组件:
我建议您不要执行您尝试执行的操作,因为您获取引用的方法非常脆弱,如果更改GUI的结构将会中断。而是使用字段来保存您需要访问的键引用,无论是JPanel字段还是集合字段(如ArrayList),还是引用自己类的对象的字段。