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

📄 mainpanel.java

📁 我的课程设计的源代码
💻 JAVA
字号:
/**
 * @(#)MainPanel.java
 *
 *
 * @author 
 * @version 1.00 2008/4/22
 */


//package fivechess;

import javax.swing.JPanel;
import java.awt.*;
import java.awt.event.*;
import java.io.PrintStream;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.*;
import java.io.*;

class MainPanel extends JPanel implements MouseListener,MouseMotionListener{
	 
	 private int width,height;
	 private ChessModel cm;
	 private ChessFrame cf;
	 
	 private Sound postsound=new Sound("post.wav");//!!!!!!!!!!!!!!!!!!!!!!!!
	 MainPanel(ChessFrame cframe,ChessModel mm){
	 	cm=mm;
	 	width=cm.getWidth();
	 	height=cm.getHeight();
	 	this.cf=cframe;
	 	addMouseListener(this);
	 	
	 }
	public void setMode(ChessModel mm){
		cm=mm;
		width=cm.getWidth();
		height=cm.getHeight();
	}
	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;
		if(i!=width&&j!=height){
			g.setColor(Color.white);
			g.drawRect(x,y,20,20);
		}
		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);
		
		}
		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,20,20);
			
		}
		if(v==3){
			g.setColor(Color.cyan);
			g.drawOval(x-8,y-8,16,16);
			
		  }
	}
	public void messageUpdate(byte x,byte y){
		ChessFrame.istoken=false;
		cm.play(x,y);
		repaint();
		System.out.println("distance:"+" "+cm.getarrMapShow()[x][y]+"coordinate:("+x+","+y+")");
	  ChessFrame.istoken=true;
	  if(cm.judgeSuccess(x,y,true))
	  	cm.showDefeet(this);
	}
	public void mousePressed (MouseEvent evt){
		int x=(evt.getX()-10)/20;
		int y=(evt.getY()-10)/20;
		if(evt.getModifiers()==MouseEvent.BUTTON1_MASK){
			if(!ChessFrame.isnet){
				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;
					
				}
				if(ChessFrame.iscomputer&&!cm.getisExist()){
					cm.computerdo(cm.getWidth(),cm.getHeight());
					repaint();
					  if(cm.judgeSuccess(cm.getX(),cm.getY(),cm.getisOdd())){
					  	cm.showDefeet(this);
					  	evt.consume();
					 }
				}
			}
		else{
			  if(ChessFrame.istoken){
			  	cm.play(x,y);
			  	System.out.println("local  :"+" "+cm.getarrMapShow()[x][y]+" coodinate: ("+x+","+y+")");
			  	repaint();
			  	ChessFrame.istoken=false;
			  	byte msg[]=new byte[2];
			  	msg[0]=(byte)x;
			  	msg[1]=(byte)y;
			  	OutputStream out=cf.getout();
			  	try{
			  		out.write(msg);
			  	}catch(IOException ex){
			  		System.out.println(ex);
			  	}
			  	if(cm.judgeSuccess(x,y,false)){
			  		cm.showSuccess(this);
			  		evt.consume();
			  	}
			 }
		}
	 }
	 postsound.play();
  }
  public void mouseClicked(MouseEvent evt){
  }
  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 + -