JFrame открывает JApplet - PullRequest
       5

JFrame открывает JApplet

0 голосов
/ 01 марта 2011

Я делаю программу на Java, которая JButton в JFrame скрывает JFrame и запускает JApplet

Я сделал что-то вроде

OpenButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e){

                hide();
                JApplet startGame = new MainApplet();

                startGame.init();
                startGame.start();
        }
});

что я делаю неправильно?спасибо

1 Ответ

1 голос
/ 01 марта 2011

Я думаю, что решение, которое вы ищете, это отдельный класс для основной логики и контейнеров верхнего уровня 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 в любой контейнер, который вам нужен.

...