linkapplet.java
来自「java网络高级编程的配套源码,java网络高级编程为清华出版社出版.」· Java 代码 · 共 279 行
JAVA
279 行
/*源程序清单12-31*/
package Link;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import borland.jbcl.layout.*;
import borland.jbcl.control.*;
import java.util.*;
import java.net.*;
public class LinkApplet extends Applet implements MouseListener
{
boolean isStandalone = false;
Vector name=new Vector();
//所有条幅名称
Vector value=new Vector();
//所有条幅的跳转页面地址
Color bkColor;
//背景颜色
Color forecolor;
//前景颜色
Color activeColor;
//活动字体颜色
Vector labelVector=new Vector();
int sleepTime=0;
//字体滚动暂停时间
int alignment=0;
//字体对齐方式
String openType;
//页面打开方式
XYLayout xyLayout1=new XYLayout();
AppletContext ac=null;
public LinkApplet()
{
}
public void init()
{
try
{
int num=Integer.parseInt(getParameter("linknumber"));
for(int i=0;i<num;i++)
{
String param="link"+i+"name";
name.addElement(getParameter(param));
param="link"+i;
value.addElement(getParameter(param));
}
String color=getParameter("bkcolor");
if(color.equals("black"))
bkColor=Color.black;
else if(color.equals("blue"))
bkColor=Color.blue;
else if(color.equals("cyan"))
bkColor=Color.cyan;
else if(color.equals("darkGray"))
bkColor=Color.darkGray;
else if(color.equals("gray"))
bkColor=Color.gray;
else if(color.equals("green"))
bkColor=Color.green;
else if(color.equals("lightGray"))
bkColor=Color.lightGray;
else if(color.equals("magenta"))
bkColor=Color.magenta;
else if(color.equals("orange"))
bkColor=Color.orange;
else if(color.equals("pink"))
bkColor=Color.pink;
else if(color.equals("red"))
bkColor=Color.red;
else if(color.equals("white"))
bkColor=Color.white;
else if(color.equals("yellow"))
bkColor=Color.yellow;
color=getParameter("forecolor");
if(color.equals("black"))
forecolor=Color.black;
else if(color.equals("blue"))
forecolor=Color.blue;
else if(color.equals("cyan"))
forecolor=Color.cyan;
else if(color.equals("darkGray"))
forecolor=Color.darkGray;
else if(color.equals("gray"))
forecolor=Color.gray;
else if(color.equals("green"))
forecolor=Color.green;
else if(color.equals("lightGray"))
forecolor=Color.lightGray;
else if(color.equals("magenta"))
forecolor=Color.magenta;
else if(color.equals("orange"))
forecolor=Color.orange;
else if(color.equals("pink"))
forecolor=Color.pink;
else if(color.equals("red"))
forecolor=Color.red;
else if(color.equals("white"))
forecolor=Color.white;
else if(color.equals("yellow"))
forecolor=Color.yellow;
color=getParameter("activecolor");
if(color.equals("black"))
activeColor=Color.black;
else if(color.equals("blue"))
activeColor=Color.blue;
else if(color.equals("cyan"))
activeColor=Color.cyan;
else if(color.equals("darkGray"))
activeColor=Color.darkGray;
else if(color.equals("gray"))
activeColor=Color.gray;
else if(color.equals("green"))
activeColor=Color.green;
else if(color.equals("lightGray"))
activeColor=Color.lightGray;
else if(color.equals("magenta"))
activeColor=Color.magenta;
else if(color.equals("orange"))
activeColor=Color.orange;
else if(color.equals("pink"))
activeColor=Color.pink;
else if(color.equals("red"))
activeColor=Color.red;
else if(color.equals("white"))
activeColor=Color.white;
else if(color.equals("yellow"))
activeColor=Color.yellow;
sleepTime=Integer.parseInt(getParameter("sleeptime"));
openType=getParameter("openType");
alignment=Integer.parseInt(getParameter("alignment"));
jbInit();
run();
ac=getAppletContext();
}
catch (Exception e)
{
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception
{
this.setLayout(xYLayout1);
this.setBackground(bkColor);
this.setForeground(forecolor);
}
public void run()
{
try
{
int size=name.size();
//得到条幅的数量
int width=this.getSize().width;
//得到applet的宽度
int height=this.getSize().height;
//得到applet的高度
int labelHeight=(height-5*size-5)/size;
//计算label的大概高度
for(int i=0;i<size;i++)
{
Label label=new Label();
label.setAlignment(alignment);
//设置label的对齐方式
add(label,new XYConstraints(5,(i+1)*5+labelHeight*i, width-10,labelHeight));
labelVector.addElement(label);
//将label添加到矢量表中
label.addMouseListener(this);
//通知监听器对象
}
Scroll scroll=new Scroll(labelVector,name,value,sleepTime);
scroll.start();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
public void mouseClicked(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
Label label=(Label)e.getComponent();
label.setForeground(activeColor);
}
public void mouseReleased(MouseEvent e)
{
try
{
Label label=(Label)e.getComponent();
label.setForeground(forecolor);
String text=label.getText();
int m=name.indexOf(text);
String hotLink=(String)value.elementAt(m);
URL url=new URL(hotLink);
ac.showDocument(url,openType);
}
catch(Exception ee)
{
System.out.println(ee.toString());
}
}
public void mouseEntered(MouseEvent e)
{
Cursor c=new Cursor(Cursor.HAND_CURSOR);
this.setCursor(c);
}
public void mouseExited(MouseEvent e)
{
Cursor c=new Cursor(Cursor.DEFAULT_CURSOR);
this.setCursor(c);
}
}
class Scroll extends Thread
{
Vector label=new Vector();
Vector name=new Vector();
Vector value=new Vector();
int sleepTime;
public Scroll(Vector l,Vector n,Vector v,int time)
{
for(int i=0;i<l.size();i++)
{
label.addElement((Label)l.elementAt(i));
name.addElement((String)n.elementAt(i));
value.addElement((String)v.elementAt(i));
}
this.sleepTime=time;
}
public void run()
{
try{
int mn=0;
int size=name.size();
while(true)
{
for(int i=0;i<size;i++)
{
Label l=(Label)label.elementAt(i);
int number=mn+i;
if(number==size)
number=0;
else if(number==size+1)
number=1;
else if(number==size+2)
number=2;
else if(number==size+3)
number=3;
l.setText((String)name.elementAt(number));
}
mn++;
if(mn==size)
mn=0;
Thread.sleep(sleepTime);
}
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?