public class MainPanel extends JPanel implements ActionListener{
private Button a[];
private JButton newGame, loadFileDir, quit;
private JRadioButton onePlayer, twoPlayer;
private JComboBox diff;
private paintHang draw = new paintHang();
public MainPanel (){
super();
//create menu panel
JPanel menuPanel = new JPanel();
menuPanel.setBorder(BorderFactory.createTitledBorder("Menu"));
menuPanel.setBackground(Color.orange);
menuPanel.setPreferredSize(new Dimension(150, 550));
//create game display panel
JPanel gamePanel = new JPanel();
gamePanel.setBorder(BorderFactory.createTitledBorder("Game Display"));
gamePanel.setBackground(Color.white);
gamePanel.setPreferredSize(new Dimension(400, 550));
//create game status panel
JPanel statusPanel = new JPanel();
statusPanel.setBorder(BorderFactory.createTitledBorder("Game Status"));
statusPanel.setBackground(Color.yellow);
statusPanel.setPreferredSize(new Dimension(150, 150));
//main panel bg color
setBackground(Color.black);
//Text labels for game status
JLabel difficulty = new JLabel("Difficulty: ");
JLabel tries = new JLabel("Tries Remaining: ");
JLabel hint = new JLabel("Hint: ");
JLabel currLevel = new JLabel("Level: ");
//create game buttons
newGame = new JButton("New Game");
loadFileDir = new JButton("Load Filedir..");
quit = new JButton("Quit");
newGame.setPreferredSize(new Dimension(100,20));
newGame.setToolTipText("Start New Game");
newGame.addActionListener(this);
loadFileDir.setPreferredSize(new Dimension(100,20));
loadFileDir.setToolTipText("Choose File dir to load words");
loadFileDir.addActionListener(this);
quit.setPreferredSize(new Dimension(100,20));
quit.setToolTipText("Exit game");
quit.addActionListener(this);
//radio buttons for one/two player modes
onePlayer = new JRadioButton ("One Player", true);
twoPlayer = new JRadioButton ("Two Players");
onePlayer.addActionListener(this);
twoPlayer.addActionListener(this);
//group radio buttons
ButtonGroup group = new ButtonGroup();
group.add (onePlayer);
group.add (twoPlayer);
//combo box for difficulty settings
String[] level = {"Level 1", "Level 2", "Level 3", "AutoLevel"};
diff = new JComboBox (level);
diff.setSelectedIndex(-1);
diff.setPreferredSize(new Dimension(20,20));
diff.setSize(new Dimension(20,20));
//create a button keyboard in game display
a = new Button[26];
StringBuffer buffer;
for (int i = 0; i <26; i++) {
buffer = new StringBuffer();
buffer.append((char)(i+65));
a[i] = new Button(buffer.toString());
a[i].addActionListener(this);
gamePanel.add(a[i]);
}
//menu panel, buttons, box layout
menuPanel.setLayout(new BoxLayout(menuPanel, BoxLayout.PAGE_AXIS));
menuPanel.add (Box.createRigidArea(new Dimension (0, 5)));
menuPanel.add (newGame);
menuPanel.add (Box.createRigidArea(new Dimension (0, 10)));
menuPanel.add (loadFileDir);
// menuPanel.add (Box.createRigidArea(new Dimension (0, 10)));
// menuPanel.add (difficulty);
// menuPanel.add (diff);
menuPanel.add (Box.createRigidArea(new Dimension (0, 10)));
menuPanel.add (onePlayer);
menuPanel.add (twoPlayer);
menuPanel.add (Box.createRigidArea(new Dimension (0, 10)));
menuPanel.add (quit);
menuPanel.add (Box.createRigidArea(new Dimension (0, 10)));
//game status panel with labels, box layout
statusPanel.setLayout(new BoxLayout(statusPanel, BoxLayout.PAGE_AXIS));
statusPanel.add (currLevel);
statusPanel.add (Box.createRigidArea(new Dimension (0, 5)));
statusPanel.add (hint);
statusPanel.add (Box.createRigidArea(new Dimension (0, 5)));
statusPanel.add (tries);
statusPanel.add (Box.createVerticalStrut(320));
gamePanel.add(draw);
menuPanel.add(statusPanel);
add(menuPanel);
add(gamePanel);
}