?? mainpanel.java
字號(hào):
//MainPanel.java
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 setModel(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);
}
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 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.showDefeat(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.showDefeat(this);
evt.consume();
}
}
} else {
if (ChessFrame.istoken) {
cm.play(x, y);
System.out.println(
"local:"
+ " "
+ cm.getarrMapShow()[x][y]
+ "coordinate:("
+ 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) {
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -