Java+Swing实现的五子棋游戏

编程入门 行业动态 更新时间:2024-10-19 04:24:59

Java+Swing实现的<a href=https://www.elefans.com/category/jswz/34/1769950.html style=五子棋游戏"/>

Java+Swing实现的五子棋游戏

Java+Swing实现的五子棋游戏

  • 一、系统介绍
  • 二、功能展示
    • 1.游戏展示
  • 三、系统实现
    • 1.ChessFrame .java
  • 四、其它
    • 1.其他系统实现
    • 2.获取源码

一、系统介绍

五子棋游戏实现人机对战、人人对战两个模式。

二、功能展示

1.游戏展示




三、系统实现

1.ChessFrame .java

package five;import java.awt.*;
import java.awt.event.*;
import javax.swing.*;import view.UserFrame;public class ChessFrame extends JFrame implements ActionListener {public static boolean iscomputer = true, checkcomputer = true;private String[] strsize = {"标准棋盘", "改进棋盘", "扩大棋盘"};private String[] strmode = {"人机对战", "人人对战"};private int width, height;private ChessModel cm;private MainPanel mp;public ChessFrame() {this.setTitle("五子棋游戏");cm = new ChessModel(1);mp = new MainPanel(cm);Container con = this.getContentPane();con.add(mp, "Center");this.setResizable(false);this.addWindowListener(new ChessWindowEvent());MapSize(14, 14);JMenuBar mbar = new JMenuBar();this.setJMenuBar(mbar);JMenu gameMenu = new JMenu("游戏");mbar.add(makeMenu(gameMenu, new Object[]{"开局", null, "棋盘", null, "模式", null, "退出"}, this));JMenu lookMenu = new JMenu("外观");mbar.add(makeMenu(lookMenu, new Object[]{"类型一", "类型二", "类型三"}, this));JMenu userMenu = new JMenu("用户管理");mbar.add(makeMenu(userMenu, new Object[]{"用户管理"}, this));JMenu helpMenu = new JMenu("版本");mbar.add(makeMenu(helpMenu, new Object[]{"关于"}, this));this.setLocationRelativeTo(null);}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);elsereturn 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);} elsem.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;elsereturn 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;elsereturn null;if (target instanceof ActionListener)r.addActionListener((ActionListener) target);return r;}public void MapSize(int w, int h) {setSize(w * 24, h * 27);if (this.checkcomputer)this.iscomputer = true;elsethis.iscomputer = false;mp.setModel(cm);mp.repaint();}public boolean getiscomputer() {return this.iscomputer;}public void restart() {int modeChess = cm.getModeChess();if (modeChess <= 3 && modeChess >= 0) {cm = new ChessModel(modeChess);MapSize(cm.getWidth(), cm.getHeight());}}public void actionPerformed(ActionEvent e) {String arg = e.getActionCommand();try {if (arg.equals("类型三"))UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");else if (arg.equals("类型二"))UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");elseUIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");SwingUtilities.updateComponentTreeUI(this);} catch (Exception ee) {}if (arg.equals("标准棋盘")) {this.width = 14;this.height = 14;cm = new ChessModel(1);MapSize(this.width, this.height);SwingUtilities.updateComponentTreeUI(this);}if (arg.equals("改进棋盘")) {this.width = 18;this.height = 18;cm = new ChessModel(2);MapSize(this.width, this.height);SwingUtilities.updateComponentTreeUI(this);}if (arg.equals("扩大棋盘")) {this.width = 22;this.height = 22;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.getModeChess());MapSize(cm.getWidth(), cm.getHeight());SwingUtilities.updateComponentTreeUI(this);}if (arg.equals("人人对战")) {this.checkcomputer = false;this.iscomputer = false;cm = new ChessModel(cm.getModeChess());MapSize(cm.getWidth(), cm.getHeight());SwingUtilities.updateComponentTreeUI(this);}if (arg.equals("开局")) {restart();}if (arg.equals("关于"))JOptionPane.showMessageDialog(null, " 第一版\nR数学192 董磊 1918180232", "版本", JOptionPane.PLAIN_MESSAGE);if (arg.equals("退出"))System.exit(0);if (arg.equals("用户管理")){new UserFrame();}}
}

四、其它

1.其他系统实现

Java+Swing实现学生选课管理系统
Java+Swing实现学校教务管理系统
Java+Swing+sqlserver学生成绩管理系统
Java+Swing用户信息管理系统
Java+Swing实现的五子棋游戏
基于JavaSwing 银行管理系统
Java+Swing+mysql仿QQ聊天工具
Java+Swing 聊天室
Java+Swing+dat文件存储实现学生选课管理系统
Java+Swing可视化图像处理软件
Java+Swing学生信息管理系统
Java+Swing图书管理系统
Java+Swing图书管理系统2.0
基于java+swing+mysql图书管理系统3.0
大作业-基于java+swing+mysql北方传统民居信息管理系统

2.获取源码

点击下载
Java+Swing实现的五子棋游戏

更多推荐

Java+Swing实现的五子棋游戏

本文发布于:2024-02-17 18:49:20,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1695122.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:五子   游戏   Java   Swing

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!