A
atd061180
Gast
Hallo,
es geht um folgendes Problem:Ich möchte gerne einen NewsTicker machen, der die RRS-Feeds von verschiedenen Hompages ausliest und das ausgelesene(jeweils die Überschrift reicht) mir an mein JAVA-Applet übergibt.Leider bin ich nun nach unzähligen Veruchen am Ende und hoffe dass mir hier evtl jemand weiterhelfen kann wo der fehler ist.
Quelltext:
es geht um folgendes Problem:Ich möchte gerne einen NewsTicker machen, der die RRS-Feeds von verschiedenen Hompages ausliest und das ausgelesene(jeweils die Überschrift reicht) mir an mein JAVA-Applet übergibt.Leider bin ich nun nach unzähligen Veruchen am Ende und hoffe dass mir hier evtl jemand weiterhelfen kann wo der fehler ist.
Quelltext:
Code:
import java.applet.*;
import java.awt.Graphics;
import java.awt.*;
import java.io.*;
import java.net.*;
import java.lang.*;
public class Laufschriftklein extends Applet implements Runnable
{
String title[] = new String[10];
String description[] = new String[10];
String link[] = new String[10];
int anzahl=0;
int x, y, breite;
Thread my_thread;
String text;
Font f = new Font("System", Font.BOLD, 18);
String s;
public void auslesen() throws IOException
{
text="";
try
{
URL url = new URL( "http://www.chip.de/rss/rss_topnews.xml" );
Reader is = new InputStreamReader( url.openStream() );
BufferedReader in = new BufferedReader( is );
String s;
for (int i=0; ( s = in.readLine() ) != null && i<200;i++)
text=s;
in.close();
}
catch ( MalformedURLException e )
{
System.out.println( "MalformedURLException: " + e );
}
catch ( IOException e )
{
System.out.println( "IOException: " + e );
}
int start=0,end=0;
for(int i=0;i<text.length();i++)
{
for(;i<text.length();i++)
{
if(text.substring(i,i+1).compareTo("<")==0 && text.substring(i,i+16).compareTo("<title><![CDATA[")==0)
{
i+=16;
start=i;
}
if(text.substring(i,i+1).compareTo("]")==0 && text.substring(i,i+11).compareTo("]]></title>")==0)
{
end=i;
i+=11;
title[anzahl]=text.substring(start,end);
System.out.println("title:" + text.substring(start,end));
break;
}
}
for(;i<text.length();i++)
{
if(text.substring(i,i+1).compareTo("<")==0 && text.substring(i,i+22).compareTo("<description><![CDATA[")==0)
{
i+=22;
start=i;
}
if(text.substring(i,i+1).compareTo("]")==0 && text.substring(i,i+17).compareTo("]]></description>")==0)
{
end=i;
i+=17;
description[anzahl]=text.substring(start,end);
System.out.println("description:" + text.substring(start,end));
break;
}
}
for(;i<text.length();i++)
{
if(text.substring(i,i+1).compareTo("<")==0 && text.substring(i,i+6).compareTo("<link>")==0)
{
i+=6;
start=i;
}
if(text.substring(i,i+1).compareTo("<")==0 && text.substring(i,i+7).compareTo("</link>")==0)
{
end=i;
i+=7;
link[anzahl]=text.substring(start,end);
System.out.println("link:" + text.substring(start,end));
System.out.println("");
anzahl+=1;
break;
}
}
}
}
public void init ( )
{
try
{
auslesen();
//text="laeuft";
}
catch(Exception e)
{
text=("Fehler:" + e);
}
y = size().height / 2;
breite = size().width;
if (x > breite) x = breite;
}
public void start( )
{
my_thread = new Thread(this);
my_thread.start();
}
public void run()
{
while (true)
{
repaint();
x -= 10;
if (x < -1000) x = breite ;
try
{ // Thread erfordert Ausnahme-Handler (try-catch-Klausel)
Thread.sleep(200);
}
catch (InterruptedException e)
{}
}
}
public void paint(Graphics g)
{
g.setFont(f);
g.drawString(text, x, y);
}
}