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