あなたはそれについて言及していませんが、あなたの JFrame と JPanels は両方のクラスなので、あなたの問題は、あるクラスから別のクラスのメソッドを呼び出したいということですか? その場合、重要なのは、JFrame クラスへの参照を取得し、それをコンストラクターまたはメソッド パラメーターを介して JPanel クラスに渡すことです。
例えば:
class MyFrame extends JFrame {
private MyPanel myPanel;
public MyFrame() {
myPanel = new MyPanel(this);
}
public void frameMethod() {
System.out.println("in JFrame's frameMethod");
}
}
class MyPanel extends JPanel {
private MyFrame myFrame;
private JButton someButton = new JButton("Button");
public MyPanel(final MyFrame myFrame) {
this.myFrame = myFrame;
someButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
myFrame.frameMethod();
}
});
}
}
余談ですが、メソッドをオーバーライドする必要があるなどの正当な理由がない限り、JFrame や JPanel を拡張することはお勧めしません。