从html里面传进来一段代码
例如
.....
<span style="background-color: #ff0000; font-family: Arial; font-size: 45pt>Ticker Message number one</span> <span style="background-color: #dd32d2; font-family: Verdana; font-size: 40pt>The Second Ticker Message</span>
....
我在applet里面的代码如下
import java.awt.*;
import java.applet.*;
.........
public class SampleBanner extends Applet implements Runnable{
String str = "<span style="background-color: #ff0000; font-family: Arial; font-size: 45pt>Ticker Message number one</span> <span style="background-color: #dd32d2; font-family: Verdana; font-size: 40pt>The Second Ticker Message</span>
";
Thread t ;
boolean b;
public void init() {
setBackground(Color.gray);
setForeground(Color.yellow);
} public void start() {
t = new Thread(this);
b = false;
t.start();
} public void run () {
char ch;
for( ; ; ) {
try {
repaint();
Thread.sleep(250);
ch = str.charAt(0);
str = str.substring(1, str.length());
str = str + ch;
} catch(InterruptedException e) {}
}
}
public void paint(Graphics g) {
g.drawRect(1,1,300,150);
g.setColor(Color.yellow);
g.fillRect(1,1,300,150);
g.setColor(Color.red);
g.drawString(str, 1, 150);
}
}
代码我写的不一定对,但是意思就是叫他在浏览器里面显示出来
然后实现滚动的效果,但是我不希望滚动的文字是原文"<span style="background-color: #ff0000; font-family: Arial; font-size: 45pt>Ticker Message number one</span> <span style="background-color: #dd32d2; font-family: Verdana; font-size: 40pt>The Second Ticker Message</span>
而是只现实Ticker Message number one The Second Ticker Message但是他们都按照里面的style效果输出来!
就是滚动效果 Ticker Message number one 字体是黑色,Arial,45pt,The Second Ticker Message黑色 Verdana,40ptapplet可以实现吗??
给个意见 非常的感谢!!
例如
.....
<span style="background-color: #ff0000; font-family: Arial; font-size: 45pt>Ticker Message number one</span> <span style="background-color: #dd32d2; font-family: Verdana; font-size: 40pt>The Second Ticker Message</span>
....
我在applet里面的代码如下
import java.awt.*;
import java.applet.*;
.........
public class SampleBanner extends Applet implements Runnable{
String str = "<span style="background-color: #ff0000; font-family: Arial; font-size: 45pt>Ticker Message number one</span> <span style="background-color: #dd32d2; font-family: Verdana; font-size: 40pt>The Second Ticker Message</span>
";
Thread t ;
boolean b;
public void init() {
setBackground(Color.gray);
setForeground(Color.yellow);
} public void start() {
t = new Thread(this);
b = false;
t.start();
} public void run () {
char ch;
for( ; ; ) {
try {
repaint();
Thread.sleep(250);
ch = str.charAt(0);
str = str.substring(1, str.length());
str = str + ch;
} catch(InterruptedException e) {}
}
}
public void paint(Graphics g) {
g.drawRect(1,1,300,150);
g.setColor(Color.yellow);
g.fillRect(1,1,300,150);
g.setColor(Color.red);
g.drawString(str, 1, 150);
}
}
代码我写的不一定对,但是意思就是叫他在浏览器里面显示出来
然后实现滚动的效果,但是我不希望滚动的文字是原文"<span style="background-color: #ff0000; font-family: Arial; font-size: 45pt>Ticker Message number one</span> <span style="background-color: #dd32d2; font-family: Verdana; font-size: 40pt>The Second Ticker Message</span>
而是只现实Ticker Message number one The Second Ticker Message但是他们都按照里面的style效果输出来!
就是滚动效果 Ticker Message number one 字体是黑色,Arial,45pt,The Second Ticker Message黑色 Verdana,40ptapplet可以实现吗??
给个意见 非常的感谢!!
http://www.cp24.com/swf/animateSports.swfhttp://www.cp24.com/swf/animateEntertainmentBottom.swf
大家帮我一下啊,很头痛!
import java.applet.*;
import javax.swing.*;
public class SampleBanner extends Applet implements Runnable{
String str = "<span style='color:red;'><b>asdasdasdasd</b></span>";
Thread t ;
boolean b;
public void init() {
setBackground(Color.gray);
setForeground(Color.yellow);
} public void start() {
t = new Thread(this);
b = false;
t.start();
} public void run () {
char ch;
for( ; ; ) {
try {
repaint();
Thread.sleep(250);
ch = str.charAt(0);
str = str.substring(1, str.length());
str = str + ch;
} catch(InterruptedException e) {}
}
}
public void paint(Graphics g) {
g.drawRect(1,1,20,30);
g.setColor(Color.yellow);
g.fillRect(1,1,20,30);
g.setColor(Color.red);
g.drawString(str, 1, 50);
}
}
我现在只实现了滚动,但是文字出不来!!
能帮我把代码补充进去吗!谢谢了,等了一晚上,终于出现拉!
但是我试了一下,貌似你要的文字滚动效果是做不到的
这里给你一个解决的方法你可以试试:
写一个类继承JPanel,重写"public void paintComponents(Graphics g)绘制此容器中的每个组件"方法,在该方法中绘制你所写的文字,主要用到的是Graphics 类的drawString方法,public abstract void drawString(String str,
int x,
int y)使用此图形上下文的当前字体和颜色绘制由指定 string 给定的文本。最左侧字符的基线位于此图形上下文坐标系的 (x, y) 位置处。
你也可以绘制背景色,
例如:绘制红色背景色
g.setColor(Color.RED);
g.fillRect(0,0,panel.getWidth(),panel.getHeight())。
public abstract void fillRect(int x,
int y,
int width,
int height)填充指定的矩形。该矩形左边缘和右边缘分别位于 x 和 x + width - 1。上边缘和下边缘分别位于 y 和 y + height - 1。得到的矩形覆盖 width 像素宽乘以 height 像素高的区域。使用图形上下文的当前颜色填充该矩形。 参数:
x - 要填充矩形的 x 坐标。
y - 要填充矩形的 y 坐标。
width - 要填充矩形的宽度。
height - 要填充矩形的高度。
你可以通过线程更改所画字符串的坐标实现滚动
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import javax.swing.JApplet;
import javax.swing.JPanel;public class DemoForApplet extends JApplet implements Runnable { private int DEFAULT_WIDTH = 1000;
private int DEFAULT_HEIGHT = 100;
private PaintPanel mPaintPanel;
private int x;
private int y;
private String strText = "The Second Ticker Message";
private Thread mThread;
private Font controlTextFont; public DemoForApplet() {
super();
getContentPane().setLayout(null);
} public void init() {
x = 0;
y = 50;
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
controlTextFont = new Font("Arial",Font.PLAIN, 20);
mPaintPanel = new PaintPanel();
mPaintPanel.setBounds(0, 0, 1000, 100);
mPaintPanel.setBackground(Color.WHITE);
getContentPane().add(mPaintPanel);
mThread = new Thread(this);
mThread.start();
} public void run() {
while (true) {
x = x + 10;
if(x>DEFAULT_WIDTH)
{
x=0;
}
try {
mThread.sleep(250);
mPaintPanel.repaint();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} // 用于绘制的面板
class PaintPanel extends JPanel
{
private GradientPaint gpaint;
private Point point2;
private Point point1;
PaintPanel() {
super(true);
}
public void paintComponent(Graphics g) {
super.paintComponents(g);
Graphics2D g2d = (Graphics2D) g;
point1 = new Point(0, 0);
point2 = new Point(DEFAULT_WIDTH, DEFAULT_HEIGHT);
gpaint = new GradientPaint(point1, Color.RED, point2, Color.WHITE);
g2d.setPaint(gpaint);
g2d.fillRoundRect(0, 0, DEFAULT_WIDTH, DEFAULT_HEIGHT, 10, 10);
g2d.setColor(Color.BLACK);
g2d.setFont(controlTextFont);
g2d.drawString(strText, x, y);
} }
}
因为我得数据是从另外一个页面接收得html 路径!
<applet>
<param name="strText" value="The Second Ticker Message"/>
<param name="color" value="red"/>
</applet>
给applet传参数,然后就可以在applet的init()中通过以下语句获取其值了
strText= getParameter("strText");
color= getParameter("color");
在上面的例子中没有加入滚动方向的设置,及文本部分显示功能
这样子,我以前恩师和我朋友帮我分别写了一个,
第一个是我同学写的,只能读取本地连接,而且本地连接放在网页里面还不能运行
第二个是我老师帮我写的,能读取但是不好操作,以前不能再也免里面运行,
但是两个在eclipse的applet小程序模块里运行时没有问题的!!
一
代码结构 :text.html(里面存放着我要读取的文本数据)
内容:
<html><head></head><body>
<span>
<a style="background-color:#FF0000;" href="http://www.info-vision.com">info-vision.com</a>
<img src="http://t2.baidu.com/it/u=98406107,2487204983&fm=0&gp=-46.jpg" style="width:18px; height:18px;">
</span>
</span>
</body></html>
二
代码结构 :testa.html(一个用来运行做好的applet的html文件,运行生成好的.class文件)
内容:
<HTML>
<HEAD>
<TITLE> Write file example </TITLE>
<applet code="HzjDemo.class", width="1024",height="768">
</applet>
</HEAD>
</HTML>
三
就是两个的applet代码!生成。.class文件后,3个文件(text.html,testa.html和.class文件全部方在一个包下面!)
代码分别如下!
朋友的
import java.awt.*;
import java.applet.*;
import java.io.*;import javax.swing.JLabel;
import javax.swing.JPanel;public class HzjDemo extends Applet implements Runnable {
String str ="";
//"<html><body style='background-color: #ff0000'><span style='background-color: #ff0000; font-family: Arial; font-size: 18px'>The Second 11111111111111111111111111111Ticker Message</span></body></html>";
JLabel j = new JLabel();
JLabel j2 = new JLabel();
JPanel p = new JPanel(); Thread t;
boolean b; public void init() {
//String FileName="http:"+"//"+"localhost:8888/x/1.html";
String FileName="c:\\1.html";
File myFile=new File(FileName);
if(!myFile.exists())
{
System.err.println("Can't Find " + FileName);
} try
{
BufferedReader in = new BufferedReader(new FileReader(myFile));
String strs;
while ((strs = in.readLine()) != null)
{
str+=strs;
}
in.close();
}
catch (IOException e)
{
e.getStackTrace();
}add(j);
} public void start()
{
t = new Thread(this);
b = false;
t.start();
} public void run()
{
char ch;
int i = 0; while (true)
{
try
{
i = i + 10;
repaint();
Thread.sleep(150);
j.setText(str);
j.setLocation(j.getWidth()-i+300, 10);
if (i > j.getWidth()*2)
{
i = 0;
}
} catch (InterruptedException e)
{
} } }}
老师的:import java.awt.*;
import java.applet.*;
import java.io.InputStream;
import java.net.URL;import javax.swing.JLabel;public class HzjDemo extends Applet implements Runnable {
/**
*
*/
private static final long serialVersionUID = -3116332527413379348L;
String content = "";
JLabel j = new JLabel();
int i=100;
Thread t;
boolean b; public void init() {
add(j);
try{
// java.net.URL url=new URL("http://localhost:8888/x/1.html");
java.net.URL url=new URL("http://localhost:8888/text/1.html");
java.net.URLConnection con=url.openConnection();
con.connect();
int size=con.getContentLength();
char[] text=new char[size];
InputStream str=con.getInputStream();
for(int i=0;i<size;i++){
text[i]=(char)str.read();
//System.out.print(text[i]);
}
content=String.valueOf(text);
str.close();
System.out.println(content);
}catch(Exception e){
e.printStackTrace();
}
} public void start() {
t = new Thread(this);
b = false;
t.start();
} public void run() {
char ch;
while (true) {
try {
repaint();
Thread.sleep(100);
j.setText(content);
j.setBounds(i-=2, 10,400,100);
if(i==-100){
i=100;
}
} catch (InterruptedException e) {
}
} }}
读出并显示?是这个意思?
如果是的话,你不是说你朋友的代码可以把HTML读出嘛?那你需要把HTML解析,然后将文字及相关样式的属性提取出来,分别赋值给相关的变量应该就可以了吧
但是如果用 html 把编译好得 applet得 class在页面上 运行就是出不来
比如 <span style="backgournd-color:red;">asdasd</span>在 eclipse里面得 applet小程序运行,就没有问题 显示 就是 asdasd北京 红色得
但是在页面 加载 就 还是 输出 <span style="backgournd-color:red;">asdasd</span>