import java.applet.*;
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.*;
import java.awt.geom.*;
//import java.swing.*; public class NewsShow extends Applet implements MouseListener,MouseMotionListener,Runnable{ final static int ONLINK=1;
final static int LEAVELINK=2;
boolean version;
int width;
int height;
int blank;
int depth;
int fontSize;
int fontHight;
int scrollSpeed;
Color backgroundColor;
Color textColor;
Color conTextColor;
Color textSelectedColor;
int newsNum;
String news[];
String newsLink[];
int style;
Font font;
FontMetrics fm;
int fontHeight;
int distance;
Cursor defaultCursor=new Cursor(Cursor.DEFAULT_CURSOR);
Cursor handCursor=new Cursor(Cursor.HAND_CURSOR);
Image movedImage;
boolean move=true;
boolean hasDraw=false;
boolean first=true;
int yPos;
int xPos=0;
int lastID=0; public void init() {
version=Integer.parseInt(getParameter("version"))==1;
width=Integer.parseInt(getParameter("width"));
height=Integer.parseInt(getParameter("height"));
resize(width,height);
distance=Integer.parseInt(getParameter("distance"));
depth=Integer.parseInt(getParameter("depth"));
blank=depth+Integer.parseInt(getParameter("blank"));
scrollSpeed=Integer.parseInt(getParameter("scrollSpeed"));
fontSize=Integer.parseInt(getParameter("fontSize"));
newsNum=Integer.parseInt(getParameter("newsNum"));
if(version) newsNum++;
int tmp=Integer.parseInt(getParameter("style"));
style=(tmp==1)?1:0;
backgroundColor=getColor(getParameter("backgroundColor"));
textColor=getColor(getParameter("textColor"));
conTextColor=new Color(textColor.getRed()^0xff,textColor.getGreen()^0xff,textColor.getBlue()^0xff);
textSelectedColor=getColor(getParameter("textSelectedColor"));
news= new String[newsNum];
newsLink=new String[newsNum];
for(int i=0;i<newsNum-(version?1:0);i++) {
news[i]=getParameter("news"+i);
newsLink[i]=getParameter("news"+"Link"+i);
}
if(version) {
news[newsNum-1]="";
newsLink[newsNum-1]="";
}
String fontNames[]=GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
String fontName=getParameter("fontName");
for(int i=0;i<fontNames.length;i++) {
if(fontNames[i].equals(fontName))break;
if(i==fontNames.length-1)fontName=fontNames[i];
System.out.println(fontNames[i]);
}
font=new Font(fontName,Font.PLAIN,fontSize);
setFont(font);
fm=getFontMetrics(font);
fontHeight=3*fm.getHeight()/4;
addMouseListener(this);
addMouseMotionListener(this);
yPos=getSize().height-blank;
movedImage=createImage(getSize().width-blank*2,newsNum*(fontHeight+distance)+fm.getDescent()+getSize().height/2);
drawImage(movedImage);
setBackground(backgroundColor);
} public void start() {
move=true;
first=true;
Thread thread=new Thread(this);
thread.start();
}
public void run() {
while(true) {
if(move) {
yPos--;
if(yPos<=blank-movedImage.getHeight(this)+getSize().height/2-3)yPos=getSize().height-blank;
repaint();
}
try {
Thread.currentThread().sleep(1000/scrollSpeed);
}catch(InterruptedException e){}
}
} void drawImage(Image image) {
Graphics2D g=(Graphics2D)movedImage.getGraphics();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
g.setFont(font);
g.setColor(backgroundColor);
g.fillRect(0,0,image.getWidth(this),image.getHeight(this));
g.setColor(textColor);
for(int i=0;i<newsNum;i++) {
if(i==newsNum-1&&version) g.setColor(conTextColor);
g.drawString(news[i],0,(fontHeight+distance)*(i+1));
}
} public void update(Graphics g) {
paint(g);
} public void stop() {
move=false;
}
public void paint(Graphics g) {
Color dark=backgroundColor.darker();
Color bright=backgroundColor.brighter();
if(style==0)g.setColor(dark);
else g.setColor(bright);
for(int i=0;i<depth-1;i++) {
g.drawLine(0,i,getSize().width-i-2,i);
g.drawLine(i,0,i,getSize().height-i-2);
}
if(style==0)g.setColor(bright);
else g.setColor(dark);
for(int i=0;i<depth-1;i++) {
g.drawLine(getSize().width-i-1,i,getSize().width-i-1,getSize().height);
g.drawLine(i+1,getSize().height-i-1,getSize().width,getSize().height-i-1);
}
g.setClip(blank,blank,getSize().width-blank*2,getSize().height-blank*2);
g.drawImage(movedImage,blank,yPos,this);
} Color getColor(String inStr) {
StreamTokenizer st=new StreamTokenizer(new StringReader(inStr));
int rgb[]=new int[3];
int i=0;
try {
while(i<3) {
if(st.nextToken()==st.TT_NUMBER) rgb[i++]=(int)st.nval;
else if(st.ttype==st.TT_EOF)break;
}
}catch(IOException e){}
return new Color(rgb[0],rgb[1],rgb[2]);
} public void mouseEntered(MouseEvent e) {
move=false;
} public void mouseClicked(MouseEvent e) {
int id=getLinkID(e.getPoint());
if(id>=0) openLink(newsLink[id%newsNum]);
}
public void mouseExited(MouseEvent e) {
move=true;
setCursor(defaultCursor);
} public void mousePressed(MouseEvent e) {
} public void mouseReleased(MouseEvent e) {
} public void mouseDragged(MouseEvent e) {
} public void mouseMoved(MouseEvent e) {
Point p=e.getPoint();
int id=getLinkID(p);
if(id>=0&&!hasDraw) {
drawLink(id,ONLINK);
hasDraw=true;
setCursor(handCursor);
lastID=id;
}else if(id<0&&hasDraw) {
xPos=0;
drawLink(lastID,LEAVELINK);
hasDraw=false;
setCursor(defaultCursor);
}else if(id>=0) {
int length=(int)(fm.getStringBounds(news[id%newsNum],getGraphics()).getWidth()-getSize().width+2*blank)+news[id%newsNum].length()/4;
if(length<0)length=0;
if(p.x<getSize().width/2&&xPos>-length) {
xPos-=3;
drawLink(-id,ONLINK);
}else if(p.x>getSize().width/2&&xPos<0) {
xPos+=3;
drawLink(-id,ONLINK);
}
}
} void drawLink(int id,int status) {
int newID=id<0?-id:id;
Point basePoint=getBasePoint(newID);
Graphics2D g=(Graphics2D)getGraphics();
g.setClip(blank,blank,getSize().width-blank*2,getSize().height-blank*2);
g.setColor(backgroundColor);
g.fillRect(blank,basePoint.y-fontHeight,movedImage.getWidth(this),fontHeight+fm.getLeading()*2);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
if(status==ONLINK) g.setColor(textSelectedColor);
else if(status==LEAVELINK) g.setColor(textColor);
if(status==LEAVELINK&&version&&id==newsNum-1)g.setColor(conTextColor);
if(id>0) g.drawString(news[id%newsNum],basePoint.x,basePoint.y);
else g.drawString(news[(-id)%newsNum],basePoint.x+xPos,basePoint.y);
}
int getLinkID(Point p) {
if(((p.y-yPos)%(fontHeight+distance)>(distance))&&((p.y-yPos)/(fontHeight+distance))<newsNum) {
return ((p.y-yPos)/(fontHeight+distance));
}else return -1;
}
Point getBasePoint(int id) {
return new Point(blank,(id+1)*(fontHeight+distance)+yPos);
}
void openLink(String link) {
AppletContext appletCon=getAppletContext();
try {
appletCon.showDocument(new URL(link),"_blank");
}catch(MalformedURLException e) {System.out.println(link+e);}
}
}
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.*;
import java.awt.geom.*;
//import java.swing.*; public class NewsShow extends Applet implements MouseListener,MouseMotionListener,Runnable{ final static int ONLINK=1;
final static int LEAVELINK=2;
boolean version;
int width;
int height;
int blank;
int depth;
int fontSize;
int fontHight;
int scrollSpeed;
Color backgroundColor;
Color textColor;
Color conTextColor;
Color textSelectedColor;
int newsNum;
String news[];
String newsLink[];
int style;
Font font;
FontMetrics fm;
int fontHeight;
int distance;
Cursor defaultCursor=new Cursor(Cursor.DEFAULT_CURSOR);
Cursor handCursor=new Cursor(Cursor.HAND_CURSOR);
Image movedImage;
boolean move=true;
boolean hasDraw=false;
boolean first=true;
int yPos;
int xPos=0;
int lastID=0; public void init() {
version=Integer.parseInt(getParameter("version"))==1;
width=Integer.parseInt(getParameter("width"));
height=Integer.parseInt(getParameter("height"));
resize(width,height);
distance=Integer.parseInt(getParameter("distance"));
depth=Integer.parseInt(getParameter("depth"));
blank=depth+Integer.parseInt(getParameter("blank"));
scrollSpeed=Integer.parseInt(getParameter("scrollSpeed"));
fontSize=Integer.parseInt(getParameter("fontSize"));
newsNum=Integer.parseInt(getParameter("newsNum"));
if(version) newsNum++;
int tmp=Integer.parseInt(getParameter("style"));
style=(tmp==1)?1:0;
backgroundColor=getColor(getParameter("backgroundColor"));
textColor=getColor(getParameter("textColor"));
conTextColor=new Color(textColor.getRed()^0xff,textColor.getGreen()^0xff,textColor.getBlue()^0xff);
textSelectedColor=getColor(getParameter("textSelectedColor"));
news= new String[newsNum];
newsLink=new String[newsNum];
for(int i=0;i<newsNum-(version?1:0);i++) {
news[i]=getParameter("news"+i);
newsLink[i]=getParameter("news"+"Link"+i);
}
if(version) {
news[newsNum-1]="";
newsLink[newsNum-1]="";
}
String fontNames[]=GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
String fontName=getParameter("fontName");
for(int i=0;i<fontNames.length;i++) {
if(fontNames[i].equals(fontName))break;
if(i==fontNames.length-1)fontName=fontNames[i];
System.out.println(fontNames[i]);
}
font=new Font(fontName,Font.PLAIN,fontSize);
setFont(font);
fm=getFontMetrics(font);
fontHeight=3*fm.getHeight()/4;
addMouseListener(this);
addMouseMotionListener(this);
yPos=getSize().height-blank;
movedImage=createImage(getSize().width-blank*2,newsNum*(fontHeight+distance)+fm.getDescent()+getSize().height/2);
drawImage(movedImage);
setBackground(backgroundColor);
} public void start() {
move=true;
first=true;
Thread thread=new Thread(this);
thread.start();
}
public void run() {
while(true) {
if(move) {
yPos--;
if(yPos<=blank-movedImage.getHeight(this)+getSize().height/2-3)yPos=getSize().height-blank;
repaint();
}
try {
Thread.currentThread().sleep(1000/scrollSpeed);
}catch(InterruptedException e){}
}
} void drawImage(Image image) {
Graphics2D g=(Graphics2D)movedImage.getGraphics();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
g.setFont(font);
g.setColor(backgroundColor);
g.fillRect(0,0,image.getWidth(this),image.getHeight(this));
g.setColor(textColor);
for(int i=0;i<newsNum;i++) {
if(i==newsNum-1&&version) g.setColor(conTextColor);
g.drawString(news[i],0,(fontHeight+distance)*(i+1));
}
} public void update(Graphics g) {
paint(g);
} public void stop() {
move=false;
}
public void paint(Graphics g) {
Color dark=backgroundColor.darker();
Color bright=backgroundColor.brighter();
if(style==0)g.setColor(dark);
else g.setColor(bright);
for(int i=0;i<depth-1;i++) {
g.drawLine(0,i,getSize().width-i-2,i);
g.drawLine(i,0,i,getSize().height-i-2);
}
if(style==0)g.setColor(bright);
else g.setColor(dark);
for(int i=0;i<depth-1;i++) {
g.drawLine(getSize().width-i-1,i,getSize().width-i-1,getSize().height);
g.drawLine(i+1,getSize().height-i-1,getSize().width,getSize().height-i-1);
}
g.setClip(blank,blank,getSize().width-blank*2,getSize().height-blank*2);
g.drawImage(movedImage,blank,yPos,this);
} Color getColor(String inStr) {
StreamTokenizer st=new StreamTokenizer(new StringReader(inStr));
int rgb[]=new int[3];
int i=0;
try {
while(i<3) {
if(st.nextToken()==st.TT_NUMBER) rgb[i++]=(int)st.nval;
else if(st.ttype==st.TT_EOF)break;
}
}catch(IOException e){}
return new Color(rgb[0],rgb[1],rgb[2]);
} public void mouseEntered(MouseEvent e) {
move=false;
} public void mouseClicked(MouseEvent e) {
int id=getLinkID(e.getPoint());
if(id>=0) openLink(newsLink[id%newsNum]);
}
public void mouseExited(MouseEvent e) {
move=true;
setCursor(defaultCursor);
} public void mousePressed(MouseEvent e) {
} public void mouseReleased(MouseEvent e) {
} public void mouseDragged(MouseEvent e) {
} public void mouseMoved(MouseEvent e) {
Point p=e.getPoint();
int id=getLinkID(p);
if(id>=0&&!hasDraw) {
drawLink(id,ONLINK);
hasDraw=true;
setCursor(handCursor);
lastID=id;
}else if(id<0&&hasDraw) {
xPos=0;
drawLink(lastID,LEAVELINK);
hasDraw=false;
setCursor(defaultCursor);
}else if(id>=0) {
int length=(int)(fm.getStringBounds(news[id%newsNum],getGraphics()).getWidth()-getSize().width+2*blank)+news[id%newsNum].length()/4;
if(length<0)length=0;
if(p.x<getSize().width/2&&xPos>-length) {
xPos-=3;
drawLink(-id,ONLINK);
}else if(p.x>getSize().width/2&&xPos<0) {
xPos+=3;
drawLink(-id,ONLINK);
}
}
} void drawLink(int id,int status) {
int newID=id<0?-id:id;
Point basePoint=getBasePoint(newID);
Graphics2D g=(Graphics2D)getGraphics();
g.setClip(blank,blank,getSize().width-blank*2,getSize().height-blank*2);
g.setColor(backgroundColor);
g.fillRect(blank,basePoint.y-fontHeight,movedImage.getWidth(this),fontHeight+fm.getLeading()*2);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
if(status==ONLINK) g.setColor(textSelectedColor);
else if(status==LEAVELINK) g.setColor(textColor);
if(status==LEAVELINK&&version&&id==newsNum-1)g.setColor(conTextColor);
if(id>0) g.drawString(news[id%newsNum],basePoint.x,basePoint.y);
else g.drawString(news[(-id)%newsNum],basePoint.x+xPos,basePoint.y);
}
int getLinkID(Point p) {
if(((p.y-yPos)%(fontHeight+distance)>(distance))&&((p.y-yPos)/(fontHeight+distance))<newsNum) {
return ((p.y-yPos)/(fontHeight+distance));
}else return -1;
}
Point getBasePoint(int id) {
return new Point(blank,(id+1)*(fontHeight+distance)+yPos);
}
void openLink(String link) {
AppletContext appletCon=getAppletContext();
try {
appletCon.showDocument(new URL(link),"_blank");
}catch(MalformedURLException e) {System.out.println(link+e);}
}
}
//----------html file-----------//
<applet WIDTH=400 HEIGHT=200 CODE=NewsShow.class ><param name="width" value="200">
<param name="height" value="100">
<param name="backgroundColor" value="0,159,236">
<param name="textColor" value="255,255,0">
<param name="textSelectedColor" value="128,255,255">
<param name="style" value="0">
<param name="fontName" value="楷体_GB2312">
<param name="fontSize" value="12">
<param name="blank" value="6">
<param name="depth" value="4">
<param name="distance" value="3">
<param name="scrollSpeed" value="20">
<param name="version" value="1">
<param name="newsNum" value="3">
<param name="news0" value="每个要运行这个程序的机器要先安装JRE1.3(Java Runtime Environment--Java运行环境) ">
<param name="newsLink0" value="http://www.sina.com.cn">
<param name="news1" value="在信息的左半部分移动鼠标,信息向左滚动,在右半部分移动鼠标,信息向右滚动">
<param name="newsLink1" value="http://www.sohu.com">
<param name="news2" value="ShowNews.class 所在路径不能有中文">
<param name="newsLink2" value="http://www.huawei.com"> </applet>
使用applet中提供的一个接口方法。
getAppletContext().showDocument(new URL("http://www.csdn.net"), "_blank");================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]
是你自己不知道哪些是,还是怕别人看懂啊
再晕!
jLabel1.setText("Link CSDN");
jLabel1.addMouseListener(new java.awt.event.MouseAdapter() {//加一个鼠标事件响应
public void mouseClicked(MouseEvent e) {
getAppletContext().showDocument(new URL("http://www.csdn.net"), "_blank"); }
});
//----------------------------------------------------
要传递参数的话,可以调用 JavaScript ,让 JavaScript 来处理
getAppletContext().showDocument(new URL("Script(P1,P2)"), "_blank");
//其中 Script 是你定义的 JavaScript 函数
我想好了在告诉你
不过你可以用这种方法调用浏览器支持的 JavaScript 比如说
getAppletContext().showDocument(new URL("JavaScript:window.close()"), "_blank");