📄 move.java
字号:
程序代码:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.util.*;
/* 显示滚动信息,鼠标移动上去就停,移开则继续 */
public class ShowInfo extends Applet implements Runnable, MouseListener
{
Thread thread;
private int y;
private Image offImg; // 缓冲图象
private Graphics offG; // 缓冲
boolean pause = false; // 标志是否暂停
private int info_num; // 参数个数
// ArrayList info = new ArrayList(); // 存放信息列表,由于有些机器无法调入此类,现去掉
public void init()
{
setBackground(Color.white); // 设置Applet的背景
addMouseListener(this); // 增加鼠标监听
offImg = createImage(getSize().width, getSize().height); // 创建缓冲图象大小
offG = offImg.getGraphics();
y=getSize().height+14; // 设置初始值为Applet的高度,显示的效果就从下往上滚动
// 取网页中参数
try
{
info_num = Integer.parseInt(getParameter("info_num"));
// for(int i=1; i<=info_num; i++) info.add(getParameter("info_"+String.valueOf(i)));//更改
}
catch(Exception e)
{
showStatus("参数错误!"); // 在IE的状态栏目中显示错误信息
System.exit(-1);
}
}
public void paint(Graphics g)
{
offG.clearRect(0,0, getSize().width, getSize().height); // 先显示到缓冲区中
// for(int i=0; i<info_num; i++)
// offG.drawString((String)info.get(i),10,y+(i*14));
for(int i=1; i<=info_num; i++) // 更改为不使用ArrayList类
offG.drawString(getParameter("info_"+String.valueOf(i)));
if(offG!=null) g.drawImage(offImg,0,0,this);
}
public void update(Graphics g) // 防止画面闪烁
{
paint(g);
}
public void run()
{
Thread current = Thread.currentThread();
while (thread == current)
{
try
{
Thread.currentThread().sleep(100); // 暂时1秒
} catch (InterruptedException e) {}
repaint();
if(!pause) y--;
if(y<0-info_num*14) y=getSize().height+14;
}
}
public void start()
{
thread = new Thread(this); // 启动线程
thread.start();
}
public void stop()
{
thread = null; // 停止线程序
removeMouseListener(this); // 去掉鼠标监听
}
public void mouseEntered(MouseEvent e) // 鼠标监听
{
pause = true; // 设置暂停
}
public void mouseExited(MouseEvent e)
{
pause = false; // 恢复滚动
}
public void mouseReleased(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {y=0;}
public String getAppletInfo() { return "滚动显示信息. Write by Delfan, Email : programer@21cn.com";
}
public String[][] getParameterInfo()
{
String[][] pinfo =
{
{"info_num","int","信息数量"},
{"info_X","String","信息,X代表1--info_num"}
};
return pinfo;
}
}
说明:网页中需要增加代码:
<applet code="ShowInfo" height=100 width=200>
<param name=info_num value=4> 此处为要显示信息的总行数
<param name=info_1 value="第一行信息">
<param name=info_2 value="第二行信息">
<param name=info_3 value="第三行信息">
<param name=info_4 value="第四行信息">
</applet>
这个Applet中使用了缓冲图象进行处理,画面很稳定,没有闪烁的现象,程序也很简单,而且我都加了注释,就不多说了:)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -