我正在修改一些現有的Java代碼的任務,我不知道如何從ActionListener內調用現有對象的功能。如何從同類外部調用現有對象的函數?
只會有一個「myGame」的實例。
這裏是相關的代碼;
public class myGame extends JFrame {
public myGame() {
//...snip...
statsBar = new JLabel("");
add(statsBar, BorderLayout.SOUTH);
add(new Board(statsBar));
setResizable(false);
setVisible(true);
addMenubar();
}
private void addMenubar() {
JMenuBar menubar = new JMenuBar();
JMenu topMnuGame = new JMenu("File");
JMenuItem mnuSolve = new JMenuItem("Solve");
mnuSolve.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
// freshGame.solveGame();
// this is where I need to call the solveGame function
// for the "freshGame" instance.
solveGame();
}
});
topMnuGame.add(mnuSolve);
menubar.add(topMnuGame);
}
public static void main(String[] args) {
myGame freshGame = new myGame();
}
}
。
public class Board extends JPanel {
public Board(JLabel statsBar) {
this.statsBar = statsBar;
//..snip..
addMouseListener(new gameAdapter());
}
public void solveGame() {
// .. do stuff with object ..
}
}
所以我的問題是,我怎麼能稱之爲「solveGame()」使用了「freshGame」實例「myGame」類中?
你的類名應該以大寫字母開頭。 –
如果只有一個實例,那麼調用'solveGame()'只能在該實例上調用。它不工作?你真正的問題是什麼? – John3136
您是否嘗試使用freshGame作爲myGame類的全局變量? – ds345