Jpanel 绘制界面 刷新

来源:互联网 发布:java获取本地图片路径 编辑:程序博客网 时间:2024/05/16 06:18

/*

java 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();
  }
  
 }