⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dynarule2.java

📁 Java 范例实战 光盘使用说明 ========================== 本光盘的文件结构如下所示: =====================================
💻 JAVA
字号:
import java.applet.Applet;
import java.awt.*;

public class dynarule2 extends Applet
    implements Runnable
{

    int xs = 0;
    int ys = 0;
    int size = 0;
    int dy = 0;
    int num = 0;
    Image img = null;
    Color fg = null;
    Color bg = null;
    Color lc = null;
    Color dc = null;
    float am = 0;
    float of = 0;
    float x = 0;
    float dist = 0;
    float speed = 0;
    MediaTracker tracker = null;
    Image buffer_i = null;
    Graphics buffer_g = null;
    Thread kicker = null;
    float Pi2 = 0;

    public void init()
    {

        tracker = new MediaTracker(this);
        xs = size().width;
        ys = size().height;
        String s = getParameter("img");
        img = getImage(getDocumentBase(), s);
        tracker.addImage(img, 0);
        s = getParameter("size");
        size = s != null ? Integer.valueOf(s).intValue() : 1;
        s = getParameter("num");
        num = s != null ? Integer.valueOf(s).intValue() : 1;
        s = getParameter("dy");
        dy = s != null ? Integer.valueOf(s).intValue() : 50;
        s = getParameter("dist");
        dist = s != null ? Float.valueOf(s).floatValue() : 1.0F;
        s = getParameter("speed");
        speed = s != null ? Float.valueOf(s).floatValue() : Pi2 / 400F;
        s = getParameter("bgcolor");
        bg = s != null ? new Color(Integer.valueOf(s, 16).intValue()) : getBackground();
        s = getParameter("fgcolor");
        fg = s != null ? new Color(Integer.valueOf(s, 16).intValue()) : bg;
        lc = fg.brighter();
        dc = fg.darker();
        buffer_i = createImage(size().width, size().height);
        buffer_g = buffer_i.getGraphics();

    }

    public void start()
    {

        try
        {

            showStatus("dynarule2: Loading image...");
            tracker.waitForID(0);
            showStatus("");

        }
        catch(InterruptedException _ex)
        {

            showStatus("dynarule2: Image loading interrupted");
            return;

        }
        am = (xs - img.getWidth(this)) / 2;
        of = am;
        x = 0.0F;
        if(kicker == null)
        {

            kicker = new Thread(this);
            kicker.start();

        }

    }

    public void stop()
    {

        if(kicker != null)
        {

            kicker.stop();
            kicker = null;

        }

    }

    public void run()
    {

        do
        {

            x += speed;
            if(x > Pi2)
                x -= Pi2;
            repaint();
            try
            {

                Thread.sleep(15L);

            }
            catch(InterruptedException _ex) { }

        }
        while(true);

    }

    public void paint(Graphics g)
    {

        buffer_g.setColor(bg);
        buffer_g.fillRect(0, 0, xs, ys);
        buffer_g.setColor(lc);
        buffer_g.drawLine(xs - 1, dy + size, 0, dy + size);
        buffer_g.drawLine(xs - 1, dy + size, xs - 1, dy);
        buffer_g.setColor(dc);
        buffer_g.drawLine(0, dy, xs - 1, dy);
        buffer_g.drawLine(0, dy, 0, dy + size);
        float f = x;
        for(int i = 0; i < num; i++)
        {

            int j = (int)(Math.sin(f) * (double)am + (double)of);
            buffer_g.drawImage(img, j, 0, this);
            f += dist;

        }

        g.drawImage(buffer_i, 0, 0, this);

    }

    public final synchronized void update(Graphics g)
    {

        paint(g);

    }

    public dynarule2()
    {

        Pi2 = 6.283185F;

    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -