java闪屏类

class paint extends JPanel implements Runnable
{

    Thread t;
    int x = 10;
    int i = 0, j = 40, u = 10;
    String gg[] = { "系", "统", "正", "在", "加", "载", "请", "稍", "候" };
    int k = 0, tt = 0;
    String shi[] = { "满", "汉", "楼", "融", "满", "汉", "精", "华", "做", "天", "下", "美", "味", "招", "八", "方", "贵", "客", "结", "四",
            "海", "良", "朋", "|", "1", "2", "3","4","5","6" };
    Font f = new Font("隶书", Font.PLAIN, 18);
    
    boolean ifok = true;
    int width = 180;
    int height = 0;
    int dian = 0;

    paint()
    {
        t = new Thread(this);
        t.start();
    }

    public void run()
    {
        while (true)
        {

            if (x <= 380)        repaint();

            try {
                Thread.sleep(70);
                i++;
                j = j - 6;
                u = u + 10;

                if (tt == 3)    width = width - 20;

                if (i == 4)
                {

                    tt++;
                    if (ifok && x > 120 + k * 20)    k++;
                    if (k >= gg.length - 1)        ifok = false;
                    x = x + 10;
                    i = 0;
                    j = 40;
                    u = 10;
                    dian++;
                    if (dian > 3)    dian = 0;
                }

            } catch (InterruptedException e)

            {
                System.out.println("线程中断");
            }
        }
    }

    public void paintComponent(Graphics g)
    {
        Image image;
        image=Toolkit.getDefaultToolkit().getImage("image\\sp.jpg");
        g.drawImage(image, 0, 0, this.getWidth(), 200,this);

        int r=(int)(Math.random()*255);
        int b=(int)(Math.random()*255);
        int y=(int)(Math.random()*255);

        g.setColor(new Color(253,250,250));
        g.fillRect(x, 210, 390-x, 30);
        g.setColor(new Color(253,250,250));
        if(i>1) g.fillRect(x,225-(j+20)/2,10,j+20);
        if(j>25) g.setColor(new Color(r,b,y));
        else g.setColor(new Color(123,194,252));
        g.fillRect(x, 235-j/2,10, j);
        g.setColor(new Color(123,194,252));
        g.drawRect(10, 210, 380, 30);

        if(x<120)
        {
            for(int l=0;l<gg.length;l++)
            {
                g.setColor(new Color(0,0,0));
                g.drawString(gg[l],120+l*20,230);
            }

            for(int l=0;l<dian;l++)
            {
                g.setColor(new Color(0,0,0));
                g.drawString("*",300+l*10,235);
            }
            g.drawString("*",300+10*dian, 235);
            }
            else
            {
                g.setColor(new Color(23,23,230));
                g.drawString(gg[k],120+k*20,230);
                
                for(int l=k+1;l<gg.length;l++)
                {
                    g.setColor(new Color(0,0,0));
                    g.drawString(gg[l],120+l*20,230);
                }
                if(x>300+dian*10) g.setColor(new Color(23,23,230));
                for(int l=0;l<dian;l++)
                {
                    g.drawString("*",300+l*10,235);
                }
                g.drawString("*",300+10*dian,235);
                }

                //------------逐字写诗
                if(tt<3)
                {
                    for(int rr=0;rr<=tt;rr++)
                    {
                        g.setColor(new Color(r,b,y));
                        g.drawString(shi[rr],180,60+rr*20);
                    }
                    g.drawString(shi[tt], 180, 60+tt*20);
                }

                if(tt>=3&&tt<7)
                {
                    g.setColor(new Color(230,0,0));
                    for(int rr=0;rr<3;rr++) g.drawString(shi[rr],180,60+rr*20);
                    g.setColor(new Color(r,b,y));
                    if(tt<8) for(int rr=3;rr<=tt;rr++) g.drawString(shi[rr],150,rr*20-20);
                    if(tt>=7){ for(int rr=3;rr<8;rr++) g.drawString(shi[rr],150,rr*20-20);}
                }

                if(tt>=7&&tt<13)
                {
                    g.setColor(new Color(230,0,0));
                    for(int rr=0;rr<3;rr++) g.drawString(shi[rr],180,60+rr*20);
                    for(int rr=3;rr<=7;rr++) g.drawString(shi[rr],150,rr*20-20);
                    g.setColor(new Color(r,b,y));
                    if(tt<13) for(int rr=8;rr<=tt;rr++) g.drawString(shi[rr],120, rr*20-120);
                    if(tt>=13) {for(int rr=8;rr<13;rr++) g.drawString(shi[rr],120, rr*20-120);}
                }

                if(tt>=13&&tt<18)
                {
                    g.setColor(new Color(230,0,0));
                    for(int rr=0;rr<3;rr++) g.drawString(shi[rr],180,60+rr*20);
                    for(int rr=3;rr<=7;rr++) g.drawString(shi[rr],150,rr*20-20);
                    for(int rr=8;rr<13;rr++) g.drawString(shi[rr],120,rr*20-120);
                    g.setColor(new Color(r,b,y));
                    if(tt<18) for(int rr=13;rr<=tt;rr++) g.drawString(shi[rr],90, rr*20-220);
                    if(tt>=18) {for(int rr=13;rr<18;rr++) g.drawString(shi[rr],90, rr*20-220);}
                }

                if(tt>=18&&tt<23)
                {
                    g.setColor(new Color(230,0,0));
                    for(int rr=0;rr<3;rr++) g.drawString(shi[rr],180,60+rr*20);
                    for(int rr=3;rr<=7;rr++) g.drawString(shi[rr],150,rr*20-20);
                    for(int rr=8;rr<13;rr++) g.drawString(shi[rr],120,rr*20-120);
                    for(int rr=13;rr<18;rr++) g.drawString(shi[rr],90,rr*20-220);
                    g.setColor(new Color(r,b,y));
                    if(tt<23) for(int rr=18;rr<=tt;rr++) g.drawString(shi[rr],60, rr*20-320);
                    if(tt>=23) {for(int rr=18;rr<23;rr++) g.drawString(shi[rr],60, rr*20-320);}
                }

                if(tt>=23&&tt<30)
                {
                    g.setColor(new Color(230,0,0));
                    for(int rr=0;rr<3;rr++) g.drawString(shi[rr],180,60+rr*20);
                    for(int rr=3;rr<=7;rr++) g.drawString(shi[rr],150,rr*20-20);
                    for(int rr=8;rr<13;rr++) g.drawString(shi[rr],120,rr*20-120);
                    for(int rr=13;rr<18;rr++) g.drawString(shi[rr],90,rr*20-220);
                    for(int rr=18;rr<23;rr++) g.drawString(shi[rr],60,rr*20-320);
                    g.setColor(new Color(r,b,y));
                    if(tt<30) for(int rr=23;rr<=tt;rr++) g.drawString(shi[rr],30, rr*20-400);
                    if(tt>=30) {tt=0;for(int rr=23;rr<30;rr++) g.drawString(shi[rr],30, rr*20-400);}
                }

                if(tt>=30)
                {
                    g.setColor(new Color(230,0,0));
                    for(int rr=0;rr<3;rr++) g.drawString(shi[rr],180,60+rr*20);
                    for(int rr=3;rr<=7;rr++) g.drawString(shi[rr],150,rr*20-20);
                    for(int rr=8;rr<13;rr++) g.drawString(shi[rr],120,rr*20-120);
                    for(int rr=13;rr<18;rr++) g.drawString(shi[rr],90,rr*20-220);
                    for(int rr=18;rr<23;rr++) g.drawString(shi[rr],60,rr*20-320);
                    for(int rr=23;rr<30;rr++) g.drawString(shi[rr],30,rr*20-400);
                }
        }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值