汇智学堂-JAVA桌面游戏开发(五子棋之三:程序主界面)
之三:程序主界面
等级选择“初级”,进入“程序主界面”,效果见下图:
准备工作:
Images文件夹下,放置level.png图片一张。
代码实现:
PCBoard .java
package com.fivechess.view;
public class PCBoard extends Board {
private PCChessBoard2 pcchessboard2;//棋盘
public PCBoard() {
init();
}
public void init() {
pcchessboard2=new PCChessBoard2();
pcchessboard2.setBounds(200, 50, 600, 700);
pcchessboard2.setVisible(true);
add(pcchessboard2);
}
}
//Board类的代码:
package com.fivechess.view;
import java.awt.Graphics;
import javax.swing.JFrame;
public class Board extends JFrame {
public Board() {
setLayout(null); //取消原来布局
setBounds(300,50,800,700);
//init1();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setTitle("雷雷的五子棋");
}
/**
* 绘图
* @param g
*/
public void paint(Graphics g)
{
super.paint(g);
repaint();
}
}
===========================================================================
//棋盘PCChessBoard2类
package com.fivechess.view;
import java.awt.event.MouseEvent;
import javax.swing.JOptionPane;
public class PCChessBoard2 extends ChessBoard2{
public int whichColor=0;
private int ex;
private int ey;
public static int isClose=0;
//落下棋子
@Override
public void mouseMoved(MouseEvent e) {
repaint();
}
@Override
public void mouseClicked(MouseEvent e) {
if(isClose==1) {
return;
}
ex=e.getX();
ey=e.getY();
float x = (ex - 25) / 25;
float y = (ey - 25) / 25;
int x1 = (int) x;
int y1 = (int) y;
}
}
ChessBoard2类
package com.fivechess.view;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JPanel;
/*
* 汇制棋盘的代码
* */
public class ChessBoard2 extends JPanel implements MouseMotionListener,MouseListener{
public Image chessBoardImage;
public Image blackChess;
public Image whiteChess;
public Image buttonBoard;
public static final int COLS=19;
public static final int RAWS=19;//棋盘的行数和列数
public int position[][]=new int[COLS][RAWS];
public ChessBoard2() {
chessBoardImage = Toolkit.getDefaultToolkit().getImage("images/chessBoard.jpg");
blackChess= Toolkit.getDefaultToolkit().getImage("images/black.png");
whiteChess= Toolkit.getDefaultToolkit().getImage("images/white.png");
buttonBoard= Toolkit.getDefaultToolkit().getImage("images/buttonBoard.png");
addMouseListener(this);
}
/**
* 初始化数组为BLANK
*/
public void initStart()
{
for(int i=0;i<19;i++)
{
for(int j=0;j<19;j++)
{
position[i][j]= 0;//“0”代表当前无棋子
}
}
}
//汇制棋盘
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(chessBoardImage, 0, 0,null);
g.drawImage(buttonBoard, 550, 50, null);
for (int i = 0; i < 19; i++) {
for (int j = 0; j < 19; j++) {
if (position[i][j] ==2) {
g.drawImage(blackChess, 13+i * 25 , 13+j * 25 , null);
} else if (position[i][j] ==1) {
g.drawImage(whiteChess, 13+i * 25 , 13+j * 25 , null);
}
}
}
}
@Override
public void mouseClicked(MouseEvent e) {
}
/**
* 按下鼠标时,记录鼠标的位置,并改写数组的数值,重新绘制图形
* @param e
*/
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
}