|
|
Исходный текст программы Scroll2.java
|
Оглавление |
Назад
// ==========================================
// Scroll2.java
//(C) Alexandr Frolov, 1998
// E-mail: frolov@glasnet.ru
// Web: http://www.glasnet.ru/~frolov
// ==========================================
import java.applet.*;
import java.awt.*;
public class Scroll2 extends Applet
implements Runnable
{
Thread timerThread = null;
String szScrolledText =
"Welcome to Java applets!";
int nStrLength;
int nPosition;
int nTitleHeight;
Image mImg;
// ============================================
// init
// ============================================
public void init()
{
Graphics g = getGraphics();
nPosition = getSize().width;
g.setFont(
new Font("Helvetica", Font.BOLD, 50));
FontMetrics fm =
getFontMetrics(g.getFont());
nStrLength = fm.stringWidth(szScrolledText);
nTitleHeight = fm.getHeight();
setBackground(Color.green);
}
// ============================================
// update
// ============================================
public void update(Graphics g)
{
Graphics gImg = null;
Dimension dmImg = null;
Dimension dm = getSize();
int wndWidth = dm.width;
int wndHeight = dm.height;
if((dmImg == null) ||
(dmImg.width != wndWidth) ||
(dmImg.height != wndHeight))
{
dmImg = new Dimension(wndWidth, wndHeight);
mImg = createImage(wndWidth, wndHeight);
gImg = mImg.getGraphics();
}
Color fg = getForeground();
Color bg = getBackground();
gImg.setColor(bg);
gImg.fillRect(0, 0,
dmImg.width, dmImg.height);
gImg.setColor(fg);
gImg.setFont(
new Font("Helvetica", Font.BOLD, 50));
gImg.drawString(szScrolledText,
nPosition, nTitleHeight + 10);
nPosition--;
if(nPosition < -nStrLength)
nPosition = getSize().width;
paint(g);
}
// ============================================
// paint
// ============================================
public void paint(Graphics g)
{
if(mImg != null)
g.drawImage(mImg, 0, 0, null);
}
// ============================================
// start
// ============================================
public void start()
{
if(timerThread == null)
{
timerThread = new Thread(this);
timerThread.start();
}
}
// ============================================
// stop
// ============================================
public void stop()
{
if(timerThread != null)
{
timerThread.stop();
timerThread = null;
}
}
// ============================================
// run
// ============================================
public void run()
{
while(true)
{
try
{
repaint();
Thread.sleep(5);
}
catch(InterruptedException ie)
{
stop();
}
}
}
// ============================================
// getAppletInfo
// ============================================
public String getAppletInfo()
{
return "Name: Scroll2";
}
}
|
|
|