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

📄 chessboardpanel.java

📁 完成黑白棋的开发
💻 JAVA
字号:
package BlackAndWhite;
import BlackAndWhite.*;

import javax.swing.*;
import java.awt.*;
import java.util.*;
import java.lang.*;
import java.awt.event.*;

public class ChessBoardPanel 
extends JPanel implements Observer,MouseListener{
	private ImageIcon bk,black,white,mark;
	private Chessboard cb;
	private boolean wait=true;
	private int currentP=Style.EMPTY;
	
	public ChessBoardPanel(Chessboard cb){
		bk=new ImageIcon("Images/boardBk.gif");
		black=new ImageIcon("Images/chessBlack.gif");
		white=new ImageIcon("Images/chessWhite.gif");
		mark=new ImageIcon("Images/mark.gif");
		cb.addObserver(this);
		this.cb=cb;
		setPreferredSize(new Dimension(420, 420));
		
		addMouseListener(this);
	}
	
	public void paint(Graphics g){
		super.paint(g);
		for(int x=0;x<8;x++)
		for(int y=0;y<8;y++){
			g.drawImage(bk.getImage(),10+50*x,10+50*y,this);
			if(cb.board[y][x]==Style.BLACK)
				g.drawImage(black.getImage(),10+50*x,10+50*y,this);
			else if(cb.board[y][x]==Style.WHITE)
				g.drawImage(white.getImage(),10+50*x,10+50*y,this);	
		}
		if(cb.currentX>=0&&cb.currentY>=0)
			g.drawImage(mark.getImage(),10+50*cb.currentX,10+50*cb.currentY,this);
		
	}
	
	public void update(Observable o, Object arg){
		repaint();
	}
	
	public void restart(){
		wait=true;
		repaint();
	}
	
	public void reset(){
		restart();
	}
	
	public void start(int p){
		wait=false;
		currentP=p;
		repaint();
	}
	
	public void disable(boolean b){
		wait=!b;
	}
	
	public void mouseExited(MouseEvent e){}
	
	public void mouseClicked(MouseEvent e){
		if((e.getModifiers()&InputEvent.BUTTON1_MASK)!=0){
			if(currentP!=cb.currentP) return ;
			if(wait) return ;
			int x=e.getX();
			int y=e.getY();
			if(x<10||y<10||x>=410||y>=410) return ;
			x=(x-10)/50;
			y=(y-10)/50;
			cb.playChess(x,y);
		}
	}
	
	public void mouseEntered(MouseEvent e){}
	
	public void mousePressed(MouseEvent e){}
	
	public void mouseReleased(MouseEvent e){}
}

⌨️ 快捷键说明

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