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