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