Я думаю, что решение, которое вы ищете, это отдельный класс для основной логики и контейнеров верхнего уровня JFrame и JApplet.
public class GamePanel extends JPanel { ... your game here ... }
public class GameApplet extends JApplet {
private final GamePanel game;
public GameApplect(GamePanel gamePanel) {
this.game = game;
super.add(game);
}
public void init() {
... applet init ...
this.game.init();
}
public void start() {
... applet start ...
this.game.start();
}
}
public class GameWindow extends JFrame {
private final GamePanel game;
public GameApplect(GamePanel gamePanel) {
this.game = game;
super.add(game);
}
public void init() {
... frame init ...
this.game.init();
}
public void start() {
... frame start ...
this.game.start();
}
}
Затем вы можете запустить игровое окно вместо GameApplet при нажатии кнопки.Если вы уже работаете внутри апплета или окна, вам не нужно создавать отдельные классы GameApplet и GamePanel.Вы можете просто добавить GamePanel в любой контейнер, который вам нужен.