Jpanel 绘制界面 刷新

/*

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值