📄 creditroll.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 + -