首页>代码>java swing开发的五子棋小游戏>/五子棋/src/chess/view/ChessBoard.java
package chess.view;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class ChessBoard extends JFrame implements ActionListener {
	private GraphicPanel panel;// 棋盘
	private JMenuBar bar;// 菜单条
	private JMenu game, help;// 菜单
	public static JLabel label;// 提示
	public static final int DEFAULT_WIDTH = 650;// 默认的宽度
	public static final int DEFAULT_HEIGHT = 680;// 默认的高度

	public ChessBoard() {// 初始化
		super("五子棋v1.1");
		label = new JLabel(" ", JLabel.CENTER);// 文本居中
		panel = new GraphicPanel();
		this.add(panel, BorderLayout.CENTER);
		this.add(label, BorderLayout.SOUTH);
		bar = new JMenuBar();
		game = new JMenu("游戏");
		help = new JMenu("帮助");
		JMenuItem item = null;
		game.add(item = new JMenuItem("重新开始"));
		item.addActionListener(this);
		game.add(item = new JMenuItem("保存游戏"));
		item.addActionListener(this);
		game.add(item = new JMenuItem("装载游戏"));
		item.addActionListener(this);
		game.addSeparator();
		game.add(item = new JMenuItem("退出"));
		item.addActionListener(this);
		help.add(item = new JMenuItem("关于游戏"));
		item.addActionListener(this);
		panel.setBackground(Color.MAGENTA);
		bar.add(game);
		bar.add(help);
		this.setBackground(Color.LIGHT_GRAY);
		this.setJMenuBar(bar);
		// this.setBackground(Color.ORANGE);
	}

	public void showMe() {
		this.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getActionCommand().equals("保存游戏")) {
			JFileChooser jfc = new JFileChooser();
			jfc.showSaveDialog(this);// 保存对话框

			File f = jfc.getSelectedFile();// 文件存放的位置

			if (f != null) {
				if (panel.saveToFile(f)) {
					JOptionPane.showMessageDialog(this, "保存成功!");
				} else {
					JOptionPane.showMessageDialog(this, "保存失败!");
				}
			}
			return;
		}

		if (e.getActionCommand().equals("装载游戏")) {
			JFileChooser jfc = new JFileChooser();
			jfc.showOpenDialog(this);
			File f = jfc.getSelectedFile();
			if (f != null) {
				if (!panel.loadFromFile(f)) {
					JOptionPane.showMessageDialog(this, "文件格式不正确或一损坏!");
				}
			}
			return;
		}
		if (e.getActionCommand().equals("重新开始")) {
			panel.clear();
		}
		if (e.getActionCommand().equals("退出")) {
			System.exit(0);
		}
	}

	public static void main(String[] args) {
		new ChessBoard().showMe();
	}

}
最近下载更多
xsl250  LV1 6月20日
ewan007  LV30 3月3日
huangzy  LV12 2023年4月6日
总有人间一两风  LV8 2022年12月12日
2483935277  LV3 2022年9月3日
Qzi qzi  LV1 2022年6月24日
yebaobo  LV4 2022年2月13日
zzy1170707748  LV1 2021年12月20日
models10086  LV1 2021年12月16日
chen_jw  LV10 2021年12月14日
最近浏览更多
yansunling  LV1 11月6日
wangming32  LV1 7月15日
xsl250  LV1 6月20日
sunxiaoyan  LV1 6月19日
Dongshuo Han 6月16日
暂无贡献等级
啊撒旦撒 6月4日
暂无贡献等级
dexd1111  LV1 5月28日
860421  LV3 4月18日
ewan007  LV30 3月3日
luyouqi  LV1 2月29日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友