你沒有提到它,而是你的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中如需要覆蓋的方法。
首先,您通常可以簡單地調用沒有'this.'部分的方法,通常它會起作用。 – 2012-04-15 20:14:58
如果我這樣做,我看到錯誤:「在JPanel中找不到符號」 – user1304098 2012-04-15 20:16:22