package com.timvisee.minecraftrunner.game; import java.applet.Applet; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.IOException; import java.io.InputStream; import java.util.logging.Logger; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; import com.timvisee.minecraftrunner.MinecraftRunner; class GameFrame extends JFrame { private static final long serialVersionUID = 548254692573904433L; private static final Logger logger = Logger.getLogger(GameFrame.class.getCanonicalName()); //private static final long serialVersionUID = 5499648340202625650L; private JPanel wrapper; private Applet applet; public GameFrame(Dimension dim) { setTitle("Minecraft - " + MinecraftRunner.FRAME_TITLE); setBackground(Color.BLACK); // Set the icon of the frame try { InputStream in = MinecraftRunner.class.getResourceAsStream("/res/icon.png"); if(in != null) setIconImage(ImageIO.read(in)); } catch (IOException e) { } wrapper = new JPanel(); wrapper.setOpaque(false); wrapper.setPreferredSize(dim != null ? dim : new Dimension(854, 480)); wrapper.setLayout(new BorderLayout()); add(wrapper, BorderLayout.CENTER); pack(); setLocationRelativeTo(null); addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent arg0) { if (applet != null) { applet.stop(); applet.destroy(); } System.exit(0); } }); } public void start(Applet applet) { logger.info("Starting " + applet.getClass().getCanonicalName()); applet.init(); wrapper.add(applet, BorderLayout.CENTER); validate(); applet.start(); } }