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

📄 mainpanel.java

📁 Java五子棋编程
💻 JAVA
字号:

//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) {
	}
}

⌨️ 快捷键说明

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