Package XO

Source Code of XO.XOForm

package XO;
import com.sun.org.apache.xpath.internal.operations.*;
import sun.plugin2.message.Message;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.String;
import javax.swing.*;
/**
* Created by IntelliJ IDEA.
* User: eagle
* Date: 19.08.11
* Time: 10:20
* To change this template use File | Settings | File Templates.
*/
public class XOForm extends JFrame implements ActionListener {

  //private variables

  private JMenuBar   menuBar;
  private JMenu     gameMenu;

  private JMenu    gameFindMenu;
  private JMenuItem  gameFindLan;
  private JMenuItem  gameFindAir;
  private JMenu    gameHostMenu;
  private JMenuItem  gameHostLan;
  private JMenuItem  gameHostAir;
  private JMenuItem  gameExit;
  private GridLayout  grid;

  private int fieldSize;
  private int chainLength;

  public XOForm(){
    super();
    initComponents();
  }

  public void actionPerformed(ActionEvent ae){
    //JOptionPane.showMessageDialog(this, ">" + ae.getActionCommand().toString() + "<");
    //JOptionPane.showMessageDialog(this, ">" + ae.getActionCommand() + "<");
//    if(ae.getActionCommand().equals("Exit"))
//      JOptionPane.showMessageDialog(null,"EXIT");
//    else
//      JOptionPane.showMessageDialog(null,"AAAA");
    //fillGameField(3,3);
    //String command = ae.getActionCommand().toString();
    String command = ae.getActionCommand().toString();
    if(command == "Find LAN"){

    }   else if (command == "Find Air"){

    }   else if(command == "Host LAN"){
      //fillGameField(3,3);
      hostGame(HostType.LAN);
    }   else if(command == "Host Air"){
      //fillGameField(3,3);
      hostGame(HostType.Air);
    else if(command == "Exit"){
      this.dispose();
    }
  }


  private void initComponents(){
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.fieldSize = 0;
    this.chainLength = 0;

    this.setSize(480,300);

    menuBar = new JMenuBar();
    menuBar.setName("MainMenu");

    gameMenu = new JMenu("Game");

    gameFindMenu = new JMenu("Find");
    gameFindLan = new JMenuItem("LAN");
    gameFindLan.setActionCommand("Find LAN");
    gameFindLan.addActionListener(this);
    gameFindAir = new JMenuItem("Air");
    gameFindAir.setActionCommand("Find Air");
    gameFindAir.addActionListener(this);
    gameFindMenu.add(gameFindLan);
    gameFindMenu.add(gameFindAir);
    gameMenu.add(gameFindMenu);

    gameHostMenu = new JMenu("Host");
    gameHostLan = new JMenuItem("LAN");
    gameHostLan.setActionCommand("Host LAN");
    gameHostLan.addActionListener(this);
    gameHostAir = new JMenuItem("Air");
    gameHostAir.setActionCommand("Host Air");
    gameHostAir.addActionListener(this);
    gameHostMenu.add(gameHostLan);
    gameHostMenu.add(gameHostAir);
    gameMenu.add(gameHostMenu);

    gameMenu.addSeparator();
    gameExit = new JMenuItem("Exit");
    gameExit.addActionListener(this);
    gameMenu.add(gameExit);

    menuBar.add(gameMenu);
    this.setJMenuBar(menuBar);

    grid = new GridLayout();
    this.getContentPane().setLayout(grid);
    this.getContentPane().setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);

    this.setVisible(true);
  }

  private void findGame(){

  }

  private void hostGame(HostType hostType){
//    XOHostDialog dlg = new XOHostDialog(this);
//    dlg.setVisible(true);
//    fillGameField(dlg.getFieldSize(), dlg.getChainLength());

    //тут как-то надо обработать тип хоста (ЛАН или радио)
    Object [] comps = {new JLabel("Field Size"), new JTextField("3",3), new JLabel("Chain Length"), new JTextField("3",3), "Ok", "Cancel" };
    int res = JOptionPane.showOptionDialog(this, null, "Parametrize",JOptionPane.CLOSED_OPTION, JOptionPane.DEFAULT_OPTION, null,comps,null);

    switch (res)
    {
      case 4:
        //JOptionPane.showMessageDialog(this, "OK");
        try
        {
          this.fieldSize = Integer.parseInt(((JTextField)comps[1]).getText());
          this.chainLength = Integer.parseInt(((JTextField)comps[3]).getText());
        }
        catch (Exception exx)
        {
          JOptionPane.showMessageDialog(this, exx.getMessage());
          break;
        }
        fillGameField();
        break;
      case 5:
        //Cancel
        break;
      case JOptionPane.CLOSED_OPTION:
        //ClosedOption
        break;
    }

   
  }

  //private void fillGameField(int rows, int cols){
  private void fillGameField(){
    this.getContentPane().removeAll();
   
    grid.setRows(this.fieldSize);
    grid.setColumns(this.fieldSize);

    //this.getContentPane().setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
        this.getContentPane().setLayout(grid);
    for (int i=0; i<fieldSize*fieldSize; i++){
      JButton button = new JButton();
      button.setActionCommand("Cell " + i);
      button.addActionListener(this);
      this.getContentPane().add(button);
    }
    this.getContentPane().validate();

    for(Component c : this.getContentPane().getComponents())
    {
      ((JButton)c).addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          //To change body of implemented methods use File | Settings | File Templates.
          checkTheButton((JButton)e.getSource());
        }
      });
    }
    //int a = this.getContentPane().getComponents().length;
    //JOptionPane.showMessageDialog(this, a);
//    this.getContentPane().setVisible(false);
//    this.getContentPane().setVisible(true);
  }

  private  void checkTheButton(JButton button)
  {
    JOptionPane.showMessageDialog(this, button.getActionCommand());
  }

  //болтовня
  private void shHi(){

  }

  private void shBye(){

  }

  private void shNewGame(){

  }

  private void shSend(){

  }

  private void shAi(){

  }

  private void shWhoIs(){

  }

  private void shReceive(){

  }

  public enum HostType {
    LAN, Air
  }
}
TOP

Related Classes of XO.XOForm

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.