GUI编程中刷新屏幕的代码用repaint()方法结合多线程使用- //刷新屏幕,会进行从新调用repaint方法
- repaint();
- try {
- //让当前的线程睡眠50毫秒
- Thread.sleep(50);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
复制代码 不知道在dos窗口下是否管用,你可以实验一下,给你个GUI中刷新的例子,可以参考一下:- import java.awt.Color;
- import java.awt.Frame;
- import java.awt.Graphics;
- import java.awt.Image;
- import javax.swing.ImageIcon;
- import javax.swing.JFrame;
- public class Test {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- System.out.println("Hello World");
-
- new MyFrame();
- }
- }
- class MyFrame extends JFrame{
-
- int x=200;
- int y=200;
- //离屏画布
- Image offs;
- //离屏画笔
- Graphics offg;
- //定义图片变量
- Image img_bk;
-
- boolean isShow=true;
- public MyFrame()
- {
- //设置窗体的名称
- setTitle("我的小游戏");
- //设置窗体起始的左上角的位置和宽度高度
- setBounds(100, 100, 800,600);
- //设置界面可显示
- setVisible(true);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
-
- }
- int startA=200;
- int endA=300;
- int dir=0;
- int speed=1;
- int arc_x=100;
- int arc_y=100;
-
- int w=9;
-
- //Graphics设置画笔
- public void paint(Graphics g)
- {
- if(offs==null)
- {
- //找到图片资源
- img_bk=new ImageIcon(getClass().getResource("/Winter.jpg")).getImage();
-
- //初始化离屏画布
- offs=createImage(800,600);
- //初始化离幕画笔
- offg=offs.getGraphics();
-
- }
-
-
- offg.setColor(Color.black);
- offg.fillRect(0, 0, 800, 600);
-
- // //绘制出图片
- // offg.drawImage(img_bk,0, 0, null);
- // x++;
- //
-
-
- //循环的切割画布
- for (int i = 0; i <100; i++) {
-
- //setClip方法可以用于切割画布
- offg.setClip(i*10,0,w,600);
- offg.drawImage(img_bk,0,0,null);
-
- }
- // w++;
- if(isShow)
- {
- w++;
- if(w>10)
- {
- isShow=!isShow;
- }
-
- }else
- {
- w--;
- if(w<0)
- {
- isShow=!isShow;
-
- }
- }
-
- offg.setClip(0,0,800,600);
-
- offg.setColor(Color.red);
- offg.fillRect(x, y, 50, 50);
-
-
- offg.fillArc(arc_x, arc_y, 30, 30, startA, endA);
- g.drawImage(offs, 0, 0, null);
-
- switch(dir)
- {
- case 0:
- startA--;
- endA+=speed*2;
- arc_x+=5;
- if(startA<15)
- {
- dir=1;
- }
- break;
-
- case 1:
- startA+=speed;
- endA-=speed*2;
- arc_x-=5;
- if(startA>30)
- {
- dir=0;
- }
- break;
- }
-
-
- System.out.println("Paint方法");
- //刷新屏幕,会进行从新调用repaint方法
- repaint();
- try {
- //让当前的线程睡眠50毫秒
- Thread.sleep(50);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
-
- }
- }
复制代码 //找到图片资源
img_bk=new ImageIcon(getClass().getResource("/Winter.jpg")).getImage();
这句代码中的Winter.jpg可以更换成你自己的图片,找一张你自己的图片放在和java文件相同的文件夹下 |