天天看点

Jpanel 绘制界面 刷新

import javax.swing.*;

import java.awt.*;

public class Twoball {

 public Twoball() {

  JFrame f = new JFrame();

  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  MyPanel mp=new MyPanel();

  f.setContentPane(mp);

  mp.start();

  mp.setBackground(Color.white);

  f.setSize(new Dimension(100, 200));

  f.setLocation(Toolkit.getDefaultToolkit().getScreenSize().width/2-50, Toolkit.getDefaultToolkit().getScreenSize().height/2-100);

  f.setVisible(true);

 }

 public static void main(String[] args) {

  Twoball b = new Twoball();

 }

}

 class MyPanel extends JPanel implements Runnable{

  private Thread thread=new Thread(this);

  private short leve=0;

  MyPanel(){

   this.setSize(200,200);

   this.setVisible(true);

  }

  public void run() {

   // TODO Auto-generated method stub

   while (true) {

   this.repaint();

   try {

    thread.sleep(1000*2);

    leve++;

    System.out.println(leve);

    if(leve==5)leve=1;

   } catch (InterruptedException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

   }}

  }

  public void start(){

   thread.start();

  }

  @Override

  protected void paintComponent(Graphics g) {

   g.setColor(Color.red);

   g.clearRect(0, 0, this.getWidth(), this.getHeight());

   if(leve==1){

    g.fillRect(35, 56, 20, 15);

    g.fillRect(20, 74, 50, 15);

   }else if(leve==2){

    g.fillRect(35, 38, 20, 15);

    g.fillRect(20, 56, 50, 15);

    g.fillRect(20, 74, 50, 15);

   }else if(leve==3){

    g.fillRect(35, 20, 20, 15);

    g.fillRect(20, 38, 50, 15);

    g.fillRect(20, 56, 50, 15);

    g.fillRect(20, 74, 50, 15);

   }else if(leve==4){

    g.fillRect(35, 2, 20, 15);

    g.fillRect(20, 20, 50, 15);

    g.fillRect(20, 38, 50, 15);

    g.fillRect(20, 56, 50, 15);

    g.fillRect(20, 74, 50, 15);

   }

   this.updateUI();

  }

 }

继续阅读