import java.awt.*;
import javax.swing.*;
public class GuiDemo1{
boolean flag = true;
public static void main(String[] args){
GuiDemo1 gui = new GuiDemo1();
gui.go();
}
public void go(){
//创建 JFrame
JFrame frame = new JFrame();
//窗口关闭退出应该程序
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//画图
MyDrawPanel drawPanel = new MyDrawPanel();
frame.getContentPane().add(drawPanel);
//设置大小、可见
frame.setSize(300,300);
frame.setVisible(true);
//1秒眨1次眼珠
while(true){
drawPanel.repaint();
try{
Thread.sleep(1000);
}catch(Exception ex){}
}
}
class MyDrawPanel extends JPanel{
public void paintComponent(Graphics g){
g.setColor(Color.YELLOW);
//fillOval方法:画椭圆,参数为:X轴坐标,Y轴坐标,宽度,高度
// 画脸
g.fillOval(10, 5, 250, 250);
// 画眼睛
g.setColor(Color.BLACK);
g.fillOval(70, 65, 40, 50);
g.fillOval(150, 65, 40, 50);
// 眨眼珠
//if(flag){
// g.setColor(Color.WHITE);
// flag = false;
// }else{
// g.setColor(Color.BLACK);
// flag = true;
// }
flag = !flag;
g.setColor(flag == true ? Color.WHITE : Color.BLACK);
g.fillOval(75, 65, 30, 30);
g.fillOval(155, 65, 30, 30);
// 画嘴巴
g.setColor(Color.BLACK);
g.fillOval(70, 150, 120, 60);
// 嘴巴露出微笑
g.setColor(Color.YELLOW);
g.fillOval(70, 150, 120,30);
g.fillOval(70, 160, 120, 40);
}
}
}
眨眼珠的效果不太好,因为只是简单的显示和隐藏,没有过滤效果。