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

📄 textfade.java

📁 Its a text-fading linking ticker type applet that will fade text of any color over any color backgro
💻 JAVA
字号:
//TextFade.java.

import java.applet.*;
import java.awt.*;
import java.util.*;

public class TextFade extends Applet implements Runnable
{

	public static final int SLEEPTIME = 80;

	public void init() {
		imageBuffer = createImage(size().width, size().height);
        bGraphics = imageBuffer.getGraphics();
       	currentLink = 0;
		errorMessage ="";

		try {
			linkDelay = Integer.parseInt(getParameter("linkdelay"));
			fadeSpeed = Integer.parseInt(getParameter("fadespeed"));
			fSize = Integer.parseInt(getParameter("fontsize"));
			xStart = Integer.parseInt(getParameter("xstart"));
			yStart = Integer.parseInt(getParameter("ystart"));
			blockWidth = Integer.parseInt(getParameter("textblockwidth"));
			leading = Integer.parseInt(getParameter("leading"));
			paramsCollected = true;
		} catch (NumberFormatException e) {
			paramsCollected = false;
		}

		pc = new ParameterCollector("string_", this);
		paramStrings = pc.get("string_");
		paramUrls = pc.get("url_");
		paramTargets = pc.get("target_");
		textColor = pc.hexConvert(getParameter("textcolor"));
		rollColor = pc.hexConvert(getParameter("rollcolor"));
		backColor = pc.hexConvert(getParameter("backcolor"));

		String fFace = getParameter("fontface");
		int fStyle = pc.getFontStyle(getParameter("fontstyle"));
		f = new Font(fFace, fStyle, fSize);

		if (paramsCollected)
			buildTextLinks();
		else
			errorMessage = ""; //Removed error message in case people dont want links
	}

	public void paint(Graphics g) {
		bGraphics.setColor(backColor);
		bGraphics.fillRect(0, 0, size().width, size().height);

		drawParagraph(textlinkArray[currentLink]);
		g.drawImage(imageBuffer, 0, 0, this);
	}

	private void drawParagraph(TextLink tl) {
		bGraphics.setColor(tl.getTextColor());
		bGraphics.setFont(f);
		for(int i=0; i < tl.getNumStrings(); i++)
			bGraphics.drawString( tl.getString(i), tl.getPos().x, tl.getLeading(i) );
	}

	private void buildTextLinks()
	{
		FontMetrics fm = bGraphics.getFontMetrics(f);
		textlinkArray = new TextLink[paramStrings.length];
		for (int i = 0; i < paramStrings.length; i++) {
			textlinkArray[i] = new TextLink (paramStrings[i], paramUrls[i], paramTargets[i], xStart, yStart, blockWidth, leading, textColor, rollColor, fm);
			textlinkArray[i].setTextColor(backColor); //start out fading in - same color as the background
		}
	}

	public void run() {
        while(true) {
            repaint();
			if ( !(textlinkArray[currentLink].getHighlight()) )
				cycleLinks(linkDelay);
            try {
                Thread.sleep(SLEEPTIME);
            }
            catch (Exception e){
            }
        }
	}

	private void cycleLinks(int delaySeconds)
	{
		long t = new Date().getTime();

		if ( t - tSeconds > (delaySeconds * 1000) ) {
			if (textlinkArray[currentLink].fadeTo(backColor, fadeSpeed)) {
				currentLink = (currentLink >= textlinkArray.length-1) ? 0 : currentLink + 1;
				tSeconds = t;
			}
		}
		else
			textlinkArray[currentLink].fadeTo(textColor, fadeSpeed);
	}

	public boolean mouseMove(Event evt, int x, int y) {
		showStatus(errorMessage);
		if ( textlinkArray[currentLink].mouseWithin(x, y) )
			textlinkArray[currentLink].setHighlight(true);
		else
			textlinkArray[currentLink].setHighlight(false);
		return true;
	}

	public boolean mouseExit(Event evt, int x, int y) {
		for (int i = 0; i < textlinkArray.length; i++)
			textlinkArray[i].setHighlight(false);
		return true;
	}

	public boolean mouseDown(Event evt, int x, int y) {
		if ( textlinkArray[currentLink].mouseWithin(x, y) ) {
			try {
				AppletContext context = getAppletContext();
				context.showDocument(textlinkArray[currentLink].getUrl(), textlinkArray[currentLink].getTarget());
			}
			catch(Exception e) {
				errorMessage = "Warning: one or more url parameters are set incorrectly!";
			}
		}
		return true;
	}

	public void start() {
		if (m_ScrollerApplet == null) {
			m_ScrollerApplet = new Thread(this);
			textlinkArray[currentLink].setHighlight(false);
			tSeconds = new Date().getTime();
			m_ScrollerApplet.start();
		}
	}

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

	public void update(Graphics g) {
		paint(g);
    }

	private String[] paramStrings;
	private String[] paramUrls;
	private String[] paramTargets;
	private Color[] barColorsArray;
	private TextLink[] textlinkArray;
	private int currentLink;

	private long tSeconds;
	private ParameterCollector pc;
	private Image imageBuffer;
	private Graphics bGraphics;
	private Thread m_ScrollerApplet;

	private Color textColor;
	private Color rollColor;
	private Color backColor;
	private Font f;
	private int linkDelay;
	private int fadeSpeed;
	private int fSize;
	private int xStart;
	private int yStart;
	private int blockWidth;
	private int leading;

	private boolean paramsCollected;
	private String errorMessage;
}

⌨️ 快捷键说明

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