📄 scroll.java
字号:
import java.applet.Applet;
import java.awt.*;
import java.util.StringTokenizer;
public class Scroll extends Applet implements Runnable
{
Thread timerThread ;
int curX = 0;
int scrollX, scrollY, scrollW, scrollH,
delta, delay,
messageW, messageH ;
Font font ;
FontMetrics fontMet ;
String message = null;
Color rectColor = null;
Color textColor = null;
public Scroll() {}
String getParameter(String s1, String s2)
{
String s = getParameter(s1) ;
return (s == null) ? s2 : s ;
}
int getParameter(String s1, int s2)
{
String s = getParameter(s1) ;
return (s == null) ? s2 : Integer.parseInt(s) ;
}
public void init()
{
message = getParameter("message",
"please put your message in message param") ;
delta = getParameter("shift", 5);
delay = getParameter("delay", 50);
String s = getParameter("fontstyle", "PLAIN");
int fontStyle = Font.PLAIN ;
if (s.toUpperCase().indexOf("BOLD") != -1)
fontStyle |= Font.BOLD ;
if (s.toUpperCase().indexOf("ITALIC") != -1)
fontStyle |= Font.ITALIC ;
font = new Font(getParameter("font", "Arial"),
fontStyle, getParameter("fontsize", 12)) ;
s = getParameter("rectangle", "0 0 " + getSize().width
+ " " + getSize().height);
StringTokenizer st = new StringTokenizer(s, " ") ;
scrollX = Integer.parseInt(st.nextToken()) ;
scrollY = Integer.parseInt(st.nextToken()) ;
scrollW = Integer.parseInt(st.nextToken()) ;
scrollH = Integer.parseInt(st.nextToken()) ;
s = getParameter("RectColor", "000000") ;
rectColor = new Color(Integer.parseInt(s, 16)) ;
s = getParameter("TextColor", "ffffff") ;
textColor = new Color(Integer.parseInt(s, 16)) ;
}
public void start()
{
curX = scrollW + scrollX;
timerThread = new Thread(this);
timerThread.start();
}
public void stop()
{
timerThread = null;
}
void drawScroll(Graphics g, Rectangle rectangle)
{
g.clipRect(rectangle.x, rectangle.y, rectangle.width,
rectangle.height);
g.clipRect(scrollX, scrollY, scrollW, scrollH);
g.setColor(rectColor);
g.fillRect(rectangle.x, rectangle.y, rectangle.width,
rectangle.height);
g.setColor(textColor);
g.setFont(font);
g.drawString(message, curX, (scrollH - messageH) / 2 +
scrollY + fontMet.getAscent());
}
public void paint(Graphics g)
{
if(fontMet == null)
{
fontMet = g.getFontMetrics(font);
messageW = fontMet.stringWidth(message);
messageH = fontMet.getHeight();
}
drawScroll(g, g.getClipBounds());
}
public void update(Graphics g)
{
int i = scrollY + (scrollH - messageH) / 2;
g.copyArea(scrollX + delta, i, scrollW - delta, messageH,
-delta, 0);
drawScroll(g, new Rectangle((scrollX + scrollW) - delta,
scrollY, delta, scrollH));
curX -= delta;
if(curX < -messageW)
curX = scrollW + scrollX;
}
public void run()
{
while (timerThread == Thread.currentThread())
{
repaint();
try
{
Thread.sleep(delay);
}
catch(Exception _ex) { }
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -