package com.demo1;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class SimpleAnimation {
int x = 70;
int y = 70;
public static void main(String[] args) {
SimpleAnimation gui = new SimpleAnimation();
gui.go();
}
public void go(){
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MyDrawPanel drawPanel = new MyDrawPanel();
frame.getContentPane().add(drawPanel);
frame.setSize(300, 300); // 设定frame的大小
frame.setVisible(true); // 最后把frame显示出来
for(int i = 0;i < 130;i++){ //重复130次
x++;
y++;
drawPanel.repaint(); //要求重新绘制面板
try{
Thread.sleep(50);
}catch(Exception ex){}
}
}//关闭go方法
class MyDrawPanel extends JPanel { //创建JPanel的子类
public void paintComponent(Graphics g){ //Graphics g 此方法,要由系统来调用
g.setColor(Color.white);
g.fillRect(0, 0, this.getWidth(), this.getHeight()); // this.getHeight()从JPanel继承下来的方法
g.setColor(Color.green); //把g想象成绘图装置,告诉它要用什么颜色画出什么形状
g.fillRect(x, y, 40, 40); //使用外部的坐标值来更新
}
}//关闭内部类
}//关闭外部类
public void paintComponent(Graphics g){ //Graphics g 此方法,要由系统来调用
g.setColor(Color.white);
g.fillRect(0, 0, this.getWidth(), this.getHeight()); // this.getHeight()从JPanel继承下来的方法
g.setColor(Color.green); //把g想象成绘图装置,告诉它要用什么颜色画出什么形状
g.fillRect(x, y, 40, 40); //使用外部的坐标值来更新
}
}//关闭内部类
}//关闭外部类
运行结果:从左上角移动到右下角
关注公众号:工控技术之家,可留言提问相关问题,有需要可发送源代码