?? 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 + -