⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chessframe.java

📁 完整版java五子棋小游戏源程序
💻 JAVA
字号:
package chess;
/**
 * <p>Title:5chess </p>
 * <p>Description: </p>
 * <p>Copyright: seaboy.ping@263.net Copyright (c) 2002</p>
 * <p>Company: </p>
 * @author chenxiaoping
 * @version 1.0
 */
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class ChessFrame extends JFrame implements ActionListener {
private String[] strsize={"20x15","30x20","40x30"};
private String[] strmode={"人机对弈","人人对弈"};
public static boolean iscomputer=true,checkcomputer=true;
private int width,height;
private ChessModel cm;
private MainPanel mp;
  public ChessFrame() {
        this.setTitle("5chess");
        cm=new ChessModel(1);
        mp=new MainPanel(cm);
        Container con=this.getContentPane();
        con.add(mp,"Center");
        this.setResizable(false);
        this.addWindowListener(new nt());
       MapSize(20,15);
        JMenuBar mbar = new JMenuBar();
        this.setJMenuBar(mbar);
        JMenu gameMenu = new JMenu("游戏");
        mbar.add(makeMenu(gameMenu, new Object[] {
            "开局", "棋盘","模式", null, "退出"
        }, this));
        JMenu lookMenu =new JMenu("视图");
        mbar.add(makeMenu(lookMenu,new Object[] {
            "Metal","Motif","Windows"
            },this));
        JMenu helpMenu = new JMenu("帮助");
        mbar.add(makeMenu(helpMenu, new Object[] {
            "关于"
        }, this));
  }
 public  JMenu makeMenu(Object parent, Object items[], Object target)
    {
        JMenu m = null;
        if(parent instanceof JMenu)
            m = (JMenu)parent;
        else
        if(parent instanceof String)
            m = new JMenu((String)parent);
        else
            return null;
        for(int i = 0; i < items.length; i++)
            if(items[i] == null)
                m.addSeparator();
            else if(items[i] == "棋盘")
            {
                JMenu jm = new JMenu("棋盘");
                ButtonGroup group=new ButtonGroup();
                JRadioButtonMenuItem rmenu;
                for (int j=0;j<strsize.length;j++){
                      rmenu=makeRadioButtonMenuItem(strsize[j],target);
                      if (j==0)
                         rmenu.setSelected(true);
                      jm.add(rmenu);
                      group.add(rmenu);
                }
                m.add(jm);
            }
           else if(items[i] == "模式")
           {
                JMenu jm = new JMenu("模式");
                ButtonGroup group=new ButtonGroup();
               JRadioButtonMenuItem rmenu;
                for (int h=0;h<strmode.length;h++){
                      rmenu=makeRadioButtonMenuItem(strmode[h],target);
                      if(h==0)
                           rmenu.setSelected(true);
                      jm.add(rmenu);
                      group.add(rmenu);
                }
                m.add(jm);
            }
            else
                m.add(makeMenuItem(items[i], target));
       return m;
    }
    public  JMenuItem makeMenuItem(Object item, Object target)
    {
        JMenuItem r = null;
       if(item instanceof String)
            r = new JMenuItem((String)item);
        else
        if(item instanceof JMenuItem)
            r = (JMenuItem)item;
        else
            return null;
        if(target instanceof ActionListener)
            r.addActionListener((ActionListener)target);
        return r;
    }
    public  JRadioButtonMenuItem makeRadioButtonMenuItem(Object item, Object target)
    {
        JRadioButtonMenuItem r = null;
        if(item instanceof String)
            r = new JRadioButtonMenuItem((String)item);
        else
        if(item instanceof JRadioButtonMenuItem)
            r = (JRadioButtonMenuItem)item;
        else
            return null;
        if(target instanceof ActionListener)
            r.addActionListener((ActionListener)target);
        return r;
    }
    public  void MapSize(int w,int h)
    {
       setSize(w * 20+50 , h * 20+100 );
        if(this.checkcomputer)
           this.iscomputer=true;
        else
           this.iscomputer=false;
        mp.setModel(cm);
        mp.repaint();
    }
   public boolean getiscomputer(){
       return this.iscomputer;
    }
    public void restart()
    {
         int degree = cm.getDegree();
         if(degree <= 3 && degree >= 1)
        {
            cm = new ChessModel(degree);
             MapSize(cm.getWidth(),cm.getHeight());
         } else
         {
             System.out.println("\u81EA\u5B9A\u4E49");
         }
    }
    public void actionPerformed(ActionEvent e){
        String arg=e.getActionCommand();
       try{
          if (arg.equals("Windows"))
             UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
          else if(arg.equals("Motif"))
              UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
          else
              UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel" );         SwingUtilities.updateComponentTreeUI(this);
        }
        catch(Exception ee){}
        if(arg.equals("20x15"))
        {
            this.width=20;
            this.height=15;
            cm=new ChessModel(1);
            MapSize(this.width,this.height);
            SwingUtilities.updateComponentTreeUI(this);
        }
        if(arg.equals("30x20"))
        {
            this.width=30;
            this.height=20;
           cm=new ChessModel(2);
            MapSize(this.width,this.height);
            SwingUtilities.updateComponentTreeUI(this);
        }
        if(arg.equals("40x30"))
        {
           this.width=40;
            this.height=30;
            cm=new ChessModel(3);
            MapSize(this.width,this.height);
            SwingUtilities.updateComponentTreeUI(this);
        }
        if(arg.equals("人机对弈"))
        {
            this.checkcomputer=true;
            this.iscomputer=true;
            cm=new ChessModel(cm.getDegree());
            MapSize(cm.getWidth(),cm.getHeight());
            SwingUtilities.updateComponentTreeUI(this);
        }
        if(arg.equals("人人对弈"))
        {
            this.checkcomputer=false;
            this.iscomputer=false;
            cm=new ChessModel(cm.getDegree());
            MapSize(cm.getWidth(),cm.getHeight());
            SwingUtilities.updateComponentTreeUI(this);
        }
       if(arg.equals("开局"))
        {
            restart();
        }
        if(arg.equals("关于"))
            JOptionPane.showMessageDialog(this, "版本:1.0\n作者:seaboy.ping@263.net", "关于", 0);
       if(arg.equals("退出"))
            System.exit(0);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -