//MyChess.java
package lin;
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class MyChess {
public static void main(String[] args) { new MyFrame(); }
}
class ChessPad extends Panel implements MouseListener,ActionListener {
int x = -1,y = -1,棋子颜色 = 1; Button button = new Button("重新开局"); TextField text_1 = new TextField("请黑棋下子"); TextField text_2 = new TextField(10); ChessPad() { this.setSize(440, 440); this.setLayout(null); this.setBackground(Color.orange); this.addMouseListener(this); this.add(button); button.setBounds(10, 5, 60, 26); button.addActionListener(this); this.add(text_1); this.add(text_2); text_1.setBounds(90, 5, 90, 24); text_2.setBounds(290, 5, 90, 24); text_1.setEditable(false); text_1.setEditable(false); } @Override public void paint(Graphics arg0) { // TODO Auto-generated method stub for(int i = 40; i <= 380; i = i+20) { arg0.drawLine(40, i, 400, i); } arg0.drawLine(40, 400, 40, 400); for(int j = 40; j <= 380; j = j+20) { arg0.drawLine(j, 40, j, 400); } arg0.drawLine(400, 40, 400, 40); arg0.fillOval(97, 97, 6, 6); arg0.fillOval(337, 97, 6, 6); arg0.fillOval(97, 337, 6, 6); arg0.fillOval(337, 337, 6, 6); arg0.fillOval(217,217,6, 6); }
@Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub this.removeAll(); this.棋子颜色 = 1; this.add(button); button.setBounds(10,5,60,26); this.add(text_1); this.text_1.setBounds(90, 5, 90, 24); this.text_2.setText(""); this.text_1.setText("请黑棋下子"); this.add(text_2); this.text_2.setBounds(290, 5, 90, 24); }
@Override public void mouseClicked(MouseEvent arg0) { // TODO Auto-generated method stub }
@Override public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub }
@Override public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub }
@Override public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub if(arg0.getModifiers() == InputEvent.BUTTON1_MASK) { x = (int)arg0.getX(); y = (int)arg0.getY(); ChessPiont_black chesspoint_black = new ChessPiont_black(this); ChessPoint_white chesspoint_white = new ChessPoint_white(this); int a = (x+10)/20; int b = (y+10)/20; if(x < 40 || x > 380 || y < 40 || y >380) { } else { if(棋子颜色 == 1) { this.add(chesspoint_black); chesspoint_black.setBounds(a*20-10, b*20-10, 20, 20); 棋子颜色 = (-1)*棋子颜色; this.text_1.setText(""); this.text_2.setText("请黑棋下子"); } else if(棋子颜色 == -1) { this.add(chesspoint_white); chesspoint_white.setBounds(a*20-10,b*20-10, 20, 20); this.棋子颜色 = (-1)*this.棋子颜色; this.text_1.setText("请黑棋下子"); this.text_2.setText(""); } } } }
@Override public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } }
class MyFrame extends Frame { ChessPad chesspad; Label label; MyFrame() { chesspad = new ChessPad(); this.setLayout(null); label = new Label("单击左键下棋子,双击吃棋子,用右键单击棋子悔棋",Label.CENTER); this.add(label); label.setBounds(70, 55, 440, 26); label.setBackground(Color.orange); this.add(chesspad); chesspad.setBounds(70, 90, 440, 440); this.pack(); this.setSize(600,550); this.setVisible(true); } }
//ChessPoint_black.java
package lin;
import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import java.awt.event.InputEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseListener;
public class ChessPiont_black extends Canvas implements MouseListener { ChessPad chesspad = null; ChessPiont_black(ChessPad chesspad) { this.chesspad = chesspad; this.setSize(20, 20); this.addMouseListener(this); } @Override public void paint(Graphics arg0) { // TODO Auto-generated method stub arg0.setColor(Color.black); arg0.fillOval(0, 0, 20, 20); }
@Override public void mouseClicked(MouseEvent arg0) { // TODO Auto-generated method stub if(arg0.getClickCount() >= 2) { chesspad.remove(this); } } @Override public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub if(arg0.getModifiers() == InputEvent.BUTTON3_MASK) { chesspad.remove(this); chesspad.棋子颜色 = 1; chesspad.text_2.setText(""); chesspad.text_1.setText("请黑棋下子"); } } @Override public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } }
//ChessPoint_white.java
package lin; import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import java.awt.event.InputEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseListener;
public class ChessPoint_white extends Canvas implements MouseListener { ChessPad chesspad = null; ChessPoint_white(ChessPad chesspad) { this.chesspad = chesspad; this.setSize(20, 20); this.addMouseListener(this); } @Override public void paint(Graphics arg0) { // TODO Auto-generated method stub arg0.setColor(Color.white); arg0.fillOval(0, 0, 20, 20); }
@Override public void mouseClicked(MouseEvent arg0) { // TODO Auto-generated method stub if(arg0.getClickCount() >= 2) chesspad.remove(this); } @Override public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub if(arg0.getModifiers() == InputEvent.BUTTON3_MASK) { chesspad.remove(this); chesspad.棋子颜色 = -1; chesspad.text_1.setText(""); chesspad.text_2.setText("请白棋下"); } } @Override public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } }