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

📄 mainpanel.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 java.awt.*;
  import java.awt.event.*;
 import java.io.PrintStream;
 import javax.swing.JComponent;
 import javax.swing.JPanel;
 import javax.swing.*;

 class MainPanel extends JPanel implements MouseListener,MouseMotionListener
 {
 private int width,height;
 //private int[][] MapShow;
 private ChessModel cm;
 private ChessFrame cf;
     MainPanel(ChessModel mm)
     {
         cm=mm;
         width=cm.getWidth();
         height=cm.getHeight();
         //MapShow = mm.getarrMapShow();
         addMouseListener(this);
     }
      public void setModel(ChessModel mm)
     {
         cm = mm;
         width = cm.getWidth();
         height = cm.getHeight();
         //MapShow = mm.getarrMapShow();
     }
  
    public void paintComponent(Graphics g)
     {
         super.paintComponent(g);
         for(int j = 0; j <= height; j++)
         {
             for(int i = 0; i <= width; i++)
             {
                 int v = cm.getarrMapShow()[i][j];
                 draw(g, i, j, v);
             }

         }

     }

     public void draw(Graphics g, int i, int j, int v)
      {
          int x = 20 * i+20;
        int y = 20 * j+20;
      //draw the chessboard
        if(i!=width && j!=height)
        {
           g.setColor(Color.white);
           g.drawRect(x,y,20,20);
        }
      //draw the black chess
        if(v == 1 )
        {
           g.setColor(Color.gray);
           g.drawOval(x-8,y-8,16,16);
           g.setColor(Color.black);
           g.fillOval(x-8,y-8,16,16);
           //g.fillRect(x, y, 20, 20);
        }
       //draw the red chess
        if(v == 2 )
        {
           g.setColor(Color.gray);
           g.drawOval(x-8,y-8,16,16);
           g.setColor(Color.red);
           g.fillOval(x-8,y-8,16,16);
        }
        if(v ==3)
        {
           g.setColor(Color.cyan);
           g.drawOval(x-8,y-8,16,16);
        }


    }

    public void mousePressed(MouseEvent evt)
    {
        int x = (evt.getX()-10) / 20;
        int y = (evt.getY()-10) / 20;
        //int x = (evt.getX()-20) / 20;
        //int y = (evt.getY()-20) / 20;
        System.out.println(x+" "+y);
        if (evt.getModifiers()==MouseEvent.BUTTON1_MASK)
        {
            cm.play(x,y);
            System.out.println(cm.getisOdd()+" "+cm.getarrMapShow()[x][y]);
            repaint();
            if(cm.judgeSuccess(x,y,cm.getisOdd()))
            {
               cm.showSuccess(this);
               evt.consume();
               ChessFrame.iscomputer=false;
               //cf.restart();
            }
            if(ChessFrame.iscomputer&&!cm.getisExist())//判断是否为人机对弈
            {
               cm.computerdo(cm.getWidth(),cm.getHeight());
               //evt.consume(); 销毁鼠标事件
               repaint();
               if(cm.judgeSuccess(cm.getX(),cm.getY(),cm.getisOdd()))
               {
                   cm.showDefeat(this);
                   evt.consume();
                   //cf.restart();
               }
            }
        }
    }

    public void mouseClicked(MouseEvent evt)
    {
        //int x = evt.getX() / 20;
        //int y = evt.getY() / 20;
    }

    public void mouseReleased(MouseEvent evt)
    {
    }
    public void mouseEntered(MouseEvent mouseevt)
    {
    }
    public void mouseExited(MouseEvent mouseevent)
    {
    }

    public void mouseMoved(MouseEvent moveevt){
        int x = (moveevt.getX()-10) / 20;
        int y = (moveevt.getY()-10) / 20;
        cm.readyplay(x,y);
        repaint();
    }

    public void mouseDragged(MouseEvent evt){
    }


}

⌨️ 快捷键说明

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