问题1:java问题

您所在的位置:网站首页 java游戏结束弹出对话框 问题1:java问题

问题1:java问题

2024-07-07 07:24| 来源: 网络整理| 查看: 265

       有个问题,想了好久没解决,上网找了下,貌似也没找到好的解决方法(谷歌暂时没上去),现在这里写下来吧:

       最近在写一个五子棋的小游戏,也算是刚刚开始java入门的一个作品了吧,刚刚完成到人人对战(当然,还没有联机的),很初级的阶段。现在遇到个问题,在某段棋局结束的时候,怎么重新回到初始界面,换句话说就是怎么重新开始。以下是程序运行的过程,先把未完成的程序贴上来吧。

                            

       下面是初步阶段的代码(刚开始写,略乱,判断算法可能还有些渣!) 

import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; public class Game extends JFrame{ //画布 Graphics g; //布尔变量 作用:控制是否点击开始按钮 boolean flag_begin = false; //布尔变量 作用:控制棋子颜色 boolean flag_color = false; //二维数组 int[][] chesses = new int[12][12]; //显示棋盘的方法 public void showUI(){ //设置棋盘界面的属性 setTitle("五子棋小游戏"); setSize(600,500); setLocationRelativeTo(null); setLayout(new FlowLayout()); setDefaultCloseOperation(3);//设置关闭操作 退出程序 setResizable(false); //创建两个面板(棋盘、功能区) JPanel board_panel = new JPanel(){ //初始化,在界面上画棋盘 public void paint(Graphics g){ super.paint(g); //画棋盘 drawBoard(g); } }; JPanel function_panel = new JPanel(); //设置功能面板的布局 function_panel.setLayout(new FlowLayout(1,10,36)); //设置面板的属性 轻量级组件设置大小setPreferredSize(尺寸); board_panel.setPreferredSize(new Dimension(460,455)); function_panel.setPreferredSize(new Dimension(100,455)); board_panel.setBackground(new Color(139,117,0)); function_panel.setBackground(new Color(139,115,85)); //将面板对象添加到窗体 add(board_panel); add(function_panel); //创建功能面板上的功能按钮 JButton begin = new JButton ("开 始"); JButton renren = new JButton("人人对战"); JButton renji = new JButton ("人机对战"); JButton regret = new JButton("悔 棋"); JButton about = new JButton ("关 于"); JButton exect = new JButton ("退 出"); //将按钮添加到功能面板 function_panel.add(begin); function_panel.add(renren); function_panel.add(renji); function_panel.add(regret); function_panel.add(about); function_panel.add(exect); //创建动作监听器对象 ActionListener action_listener = new ActionListener(){ //监控开始按钮被点击 public void actionPerformed(ActionEvent e){ //可以下棋 flag_begin = true; } }; //监控开始按钮 begin.addActionListener(action_listener); //窗体可见 setVisible(true); //获取棋盘面板的画布对象 g = board_panel.getGraphics(); //创建鼠标监听器对象 监控鼠标5种行为 MouseListener mouse_listener = new MouseListener(){ //进入 public void mouseEntered(MouseEvent e){ } //离开 public void mouseExited(MouseEvent e){ } //按下 public void mousePressed(MouseEvent e){ } //释放 public void mouseReleased(MouseEvent e){ } //单击 public void mouseClicked(MouseEvent e){ if(flag_begin){ //获取鼠标单击时的坐标 int x = e.getX(); int y = e.getY(); //得到所有交叉点的通式 for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3