java - JFrame 打开 JApplet

标签 java swing japplet

我正在用java编写一个程序,JFrame中的JButton将隐藏JFrame并运行JApplet

我做了类似的事情

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

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

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

我做错了什么?谢谢

最佳答案

我认为您正在寻找的解决方案是为主逻辑和顶级容器 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 添加到您想要的任何容器中。

关于java - JFrame 打开 JApplet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5148494/

相关文章:

java - 为什么小程序在调整到我指定的大小之前会以默认大小启动?

java - KeyListener 在 JApplet 中不起作用

java - 将 Applet 添加到 JFrame

java - 使用 open csv 获取 .csv 的内容

java - 在 Java 中从 HTTPS URL 下载图像

java - Java swing 中图形的标记

java - 根据框架是否打开启用和禁用按钮

java - 在Ubuntu中运行Hadoop Jar

java - 更改 Android TeeChart 中轴标题和轴之间的距离

java - 在编辑开始时将 JCombobox 中的选定索引设置为 jtable 中的单元格编辑器