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

📄 mainpanel.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 + -