1.创建弹窗,并设置窗口属性。
2.创建Pool类,继承JPanel类,并重写paint方法。
3.创建Net类,
4.创建Fish类,继承Thread类,重写run方法。
5.刚开始先画一条鱼,一个动作,然后利用数组,定义多条鱼,在水里游起来,最后定义catchFish方法,捕鱼。
import javax.swing.*;
public class FishGame {
public static void main(String[] args) {
//创建窗口
JFrame jFrame = new JFrame();
//创建一个Pool对象,并把该对象放到窗口上
Pool pool = new Pool();
jFrame.add(pool);
//设置大小(窗口大小由池塘图片大小决定)
jFrame.setSize(800,480);
//设置居中
jFrame.setLocationRelativeTo(null);
//设置大小不可变
jFrame.setResizable(false);
//设置关闭窗口退出程序
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//展示窗口
jFrame.setVisible(true);
}
}
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
//继承JPanel类
public class Pool extends JPanel {
//声明池塘图片
BufferedImage poolImage;
//声明池塘的宽和高,XY坐标
int poolWidth = 0;
int poolHeight = 0;
int poolX = 0;
int poolY = 0;
//定义一个构造方法
Pool(){
try {
//接收读取到的池塘图片,宽和高
poolImage = ImageIO.read(new File("src/images/bg.jpg"));
poolWidth = poolImage.getWidth();
poolHeight = poolImage.getHeight();
} catch (IOException e) {
e.printStackTrace();
}
}
//重写父类paint方法
@Override
public void paint(Graphics g) {
g.drawImage(poolImage,0,0,null);
}
}
运行结果如下
import javax.swing.*;
public class FishGame {
public static void main(String[] args) {
//创建窗口
JFrame jFrame = new JFrame();
//创建一个Pool对象,并把该对象放到窗口上
Pool pool = new Pool();
jFrame.add(pool);
//设置大小(窗口大小由池塘图片大小决定)
jFrame.set