你没有提到它,而是你的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