package com.netbeetle.minesweeper; import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; import java.awt.image.BufferedImage; import java.util.Hashtable; public class MineSweeper extends JFrame { JMineSweeper board = null; public MineSweeper() { super("MineSweeper"); // create the board createBoard(); setDefaultCloseOperation(EXIT_ON_CLOSE); setResizable(false); addWindowListener(new WindowAdapter() { public void windowActivated(WindowEvent e) { board.requestFocusInWindow(); } }); pack(); setVisible(true); } public void createBoard() { // remove the old one if needed if (board != null) getContentPane().remove(board); // create a new board board = new JMineSweeper(600, 320, 30, 16, 99); // add it back into the panel getContentPane().add(board, BorderLayout.CENTER); pack(); } public static void main(String[] args) { // start the application in the event dispatch thread javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { JFrame.setDefaultLookAndFeelDecorated(true); new MineSweeper(); } }); } }