前言:
威尼老师带你用项目的方式快速、零基础走进java的世界,希望可以通过这种寓教于乐的方式让更多的人体验到学习的乐趣和成就感,给热爱编程的初学者以动力。对于刚开始接触代码的同学,在代码的理解上可能会有一些难度,完全理解不是我们这次课的主要目标,我们使用手机也没有必要知道生产手机的整个过程,重在体验“敲代码”的过程,接下来跟着威尼老师敲起来吧。
目标:
1.Jframe组件的使用。
2.使用ImageIcon加载图片。
3.Graphics组件的使用。
4.使用幅度控制方向的改变。
5.体验“敲代码”的快感
需求:
桌球在球桌中按照一定 的线路和角度移动,遇到边框会自动弹回
实现步骤:
1.创建项目在com.tzkt包下面,创建Billiards类继承Jfram实现窗体的创建
2.使用构造函数初始化窗体的基本数据
Billiards(){
this.setTitle("天天桌球");
this.setSize(660,390);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
3.将球桌和台球显示在窗体上
double x = 100;
double y = 100;
double degree = 3.14/3; //弧度
public void paint(Graphics g) {
super.paint(g);
//画入桌子
Image image = new ImageIcon("img/table.jpg").getImage();
g.drawImage(image, 0, 30, 658, 354, null);
//画入小球
Image image2 = new ImageIcon("img/ball1.png").getImage();
g.drawImage(image2, (int)x, (int)y, 35, 35, null);
}
4.让台球以一定的弧度移动起来。
//设置x y 的值
x = x + 10*Math.cos(degree);
y = y + 10*Math.sin(degree);
//如果y>390或者y<0,改变方向
if(y > 354-35-10 || y <= 0+35+15) {
degree = -degree;
}
//如果x>658或者x<0,改变方向
if(x > 658-35-20 || x< 0+35+10) {
degree = 3.14 - degree;
}