Java ゲーム アプリケーションでメモリ リークが発生しました。リークは、ボタンを押すたびに次の新しいインスタンスが作成されるため、このボタン アクション リスナーで複数回作成される新しいインスタンスから発生しますRegularMode
。
btnRegular.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.remove(pane);
gm = Gamemode.REGULAR;
mode = new RegularMode(frame, WIDTH, HEIGHT);
}
});
面白いことに、次のコードを使用してメモリ リークを修正しようとしています。
public static void initDisplay() {
gm = Gamemode.NONE;
mode.setRunning(false);
frame.remove(mode.getPane());
frame.add(pane);
frame.validate();
frame.repaint();
mode = null; // THIS LINE
frame.pack();
}
–しかし、それは機能しません。このタイプのメモリリークを解決する他の方法はありますか?