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

📄 creditroll.java

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

public class CreditRoll extends Applet
    implements Runnable
{
    Thread killme = null;
    int i = 0;
    String num = null;
    boolean threadSuspended = false;
    int width = 0;
    int height = 0;
    int fadeZone = 0;
    int fadePix = 0;
    int nCounter = 0;
    int fontHeight = 0;
    Color textColor = null;
    Color bgColor = null;
    double fdRed = 0;
    double fdGreen = 0;
    double fdBlue = 0;
    int speed = 0;
    int vspace = 0;
    Font font = null;
    FontMetrics fm = null;
    String vText[] = null;
    String sText = null;
    URL href = null;
    boolean bRepeat = false;
    Image offScrImage = null;
    Graphics offScrGC = null;
    int nColor = 0;

    public void start()
    {
        if(killme != null)
            killme.start();
    }

    public void stop()
    {
        if(killme != null)
            killme.stop();
        killme = null;
    }

    private Color shiftColor(int pos)
    {
        int percent = (100 * pos) / height;
        if(percent < fadeZone)
            nColor = (percent * fadePix) / fadeZone;
        else
        if(percent > 100 - fadeZone)
            nColor = ((100 - percent) * fadePix) / fadeZone;
        else
            nColor = fadePix;
        if(pos > height || pos <= 0)
            nColor = 0;
        return new Color((int)(fdRed * (double)nColor + (double)bgColor.getRed()), (int)(fdGreen * (double)nColor + (double)bgColor.getGreen()), (int)(fdBlue * (double)nColor + (double)bgColor.getBlue()));
    }
    
    public boolean mouseEnter(Event evt, int x, int y)
    {
        if(href != null)
            showStatus("LINK TO:" + href);  
        return true;
    }
    
    public boolean mouseExit(Event evt, int x, int y)
    {
    	showStatus("");  
        return true;
    }
    
    public boolean mouseUp(Event evt, int x, int y)
    {
        if(href != null)
            getAppletContext().showDocument(href);
        return true;
    }

    public void run()
    {
        while(killme != null) 
        {
            try
            {
                Thread.sleep(speed);
            }
            catch(InterruptedException interruptedexception) { }
            repaint();
        }

        System.exit(0);
    }

    int getParameter(String s1, int s2) {
        String s = getParameter(s1) ;
        return (s != null) ? Integer.parseInt(s) : s2 ;
    }

    boolean getParameter(String s1, boolean s2){
       String s = getParameter(s1) ;
       if(s == null) 
       	  return s2;
       else
       	  return s.equals("no") ? false : true ;
    }
	
    String getParameter(String s1, String s2) {
        String s = getParameter(s1) ;
        return (s != null) ? s : s2 ;
    }
    
    Color getParameter(String s1, Color s2)
    {
        String s = getParameter(s1);
        return (s != null) ? new Color(Integer.parseInt(s, 16)) : s2 ;
    }
    
    public void init()
    {
        Graphics g = getGraphics();
        offScrImage = createImage(getSize().width, getSize().height);
        offScrGC = offScrImage.getGraphics();
        String param;
        
        width = getParameter("WIDTH",300);
        height = getParameter("HEIGHT",300);
        fadeZone = getParameter("FADEZONE",20); 
        textColor = getParameter("TEXTCOLOR",Color.yellow);
        bgColor = getParameter("BGCOLOR",Color.black);
        setBackground(bgColor);
        fadePix = (height * fadeZone) / 100;
        fdRed = (double)(textColor.getRed() - bgColor.getRed()) / (double)fadePix;
        fdGreen = (double)(textColor.getGreen() - bgColor.getGreen()) / (double)fadePix;
        fdBlue = (double)(textColor.getBlue() - bgColor.getBlue()) / (double)fadePix;
        try
        { 
            href = new URL(getDocumentBase(),getParameter("URL",""));
        }
        catch(MalformedURLException e)
        {
            href = null;
        }
        vspace = getParameter("VSPACE",5);
        bRepeat = getParameter("REPEAT",true);
        int num = 1;
        Vector vecText = new Vector();
        do
        {
            String arg = getParameter("text" + num);
            if(arg == null)
                break;
            String newText = arg;
            vecText.addElement(newText);
            num++;
        }
        while(true);
        if(num == 1)
        {
            String newText = "";
            vecText.addElement(newText);
        }
        vText = new String[vecText.size()];
        vecText.copyInto(vText);
        fontHeight = getParameter("FONTSIZE",20);
        font = new Font("TimesRoman", 1, fontHeight);
        g.setFont(font);
        offScrGC.setFont(font);
        fm = g.getFontMetrics();
        speed = getParameter("SPEED",200);
        killme = new Thread(this);
    }

    public void update(Graphics g)
    {
        offScrGC.setColor(bgColor);
        offScrGC.fillRect(0, 0, getSize().width, getSize().height);
        nCounter++;
        if(nCounter > height + vText.length * (fm.getHeight() + vspace))
            if(bRepeat)
            {
                nCounter = 0;
            }
            else
            {
                if(href != null)
                    getAppletContext().showDocument(href);
                stop();
            }
        for(int i = 0; i < vText.length; i++)
        {
            String str = vText[i];
            offScrGC.setColor(shiftColor((height - nCounter) + i * (fm.getHeight() + vspace)));
            offScrGC.drawString(str, (getSize().width - fm.stringWidth(str)) / 2, (height - nCounter) + i * (fm.getHeight() + vspace));
        }

        g.drawImage(offScrImage, 0, 0, this);
    }
}

⌨️ 快捷键说明

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