# Applet Live Ticker



## Jonnsn (5. Jun 2007)

Hallo   

Ich möchte einen Live Ticker in Form eines Java-Applets realisieren.
Hab mir bereits folgendes überlegt:
Ein user-Applet, dass die aktuellen Inhalte (z.B. Sport -> Spielstände) aus ner DB auf dem Webserver holt und anzeigt - 
und ein Admin-Applet mit dem die entsprechenden Werte bequem aktualisiert werden können.

hat jemand bereits mal etwas derartiges versucht? Erfahrungen? Warnungen?
Ist Java eurer Ansicht nach dafür die richtige Wahl (ich kann eigentlich nur Java, daher die Wahl  )?
Flash wird anscheinend auch häufig genutzt - kann ich aber g-a-r nicht ;-) !
Die Übermittlung der Werte aus der DB würde ich evtl mit php machen falls Java probleme hat die Server-DB anzusprechen (weil applets ja lokal ausgeführt werden) ... ebenso mit dem reinschreiben durch den admin

Vielen Dank fürs Lesen und Gedanken machen 

Gruss Jonnsn


----------



## L-ectron-X (5. Jun 2007)

Wenn dein Applet eine Direktverbindung zum DB-Server aufbaut, muss es signiert werden. Der Benutzer bekommt vor der Benutzung deines Applets ein Hinweisfenster angezeigt, in dem erweiterte Rechte auf seinem PC angefragt werden. Der Benutzer wird dies sehr wahrscheinlich ablehnen, was dazu führt, dass das Applet nicht ausgeführt wird.


----------



## Jonnsn (5. Jun 2007)

Das heisst eine Übergabe der Daten durch ein php-Skript wäre  praktikabler - oder darf ein Applet sich auch sowas nicht ohne weiteres von ner Website holen?
Ich habe bisher bei meinen Recherchen im netz so den Eindruck gewonnen dass die meisten Ticker (etwa bei größeren Sportseiten) entweder mit Flash oder eben auch nicht selten mit Java-Applet realisert wurden.


----------



## L-ectron-X (6. Jun 2007)

Jonnsn hat gesagt.:
			
		

> Das heisst eine Übergabe der Daten durch ein php-Skript wäre  praktikabler - oder darf ein Applet sich auch sowas nicht ohne weiteres von ner Website holen?


Du kannst das Applet von Außen per PHP über die param-Tags mit Daten füttern, oder es auch ohne Hinweisfenster die Daten selbst holen lassen, so lange es auf dem Server "bleibt", von dem es geladen wurde.


----------



## Jonnsn (6. Jun 2007)

wie erreiche ich denn das es auf dem Server "bleibt"? Ist damit gemeint, dass es die Daten wenn dann nur von dem Server holen kann von dem es geladen wurde? das wäre kein Problem...

Das User Applet soll auf dem gleichen Server verfügbar sein und die gleiche DB benutzen die auch das Admin Applet benutzen soll


----------



## L-ectron-X (6. Jun 2007)

Jonnsn hat gesagt.:
			
		

> Ist damit gemeint, dass es die Daten wenn dann nur von dem Server holen kann von dem es geladen wurde?


Genau.


----------



## Jonnsn (6. Jun 2007)

Gut.... Dankeschön. Dann versuche ich mal eine Version und melde mich bei Problemen nochmal ;-)


----------



## Jonnsn (16. Jun 2007)

so nun ist mir was eingefallen ;-)

wenn das Applet direkt mit der DB kommuniezieren soll - muss es das PW wissen - oder sehe ich da was falsch?
Wie kann cih das machen ohgne dass es jemand lesen kann? Also wie ist es sicher?

und eine Andere Frage nach deren Antwort ich mmentan suche: über wie gebe ich denn an wo sich die DB befindet? gibts da eine bestimmte URL???


Edit: ich machs jetzt doch mit nem php-Script.. auch wegen dem Schutz der zugangsdaten... und das funktioniert bisher eigentlich recht simpel.


----------



## Jonnsn (21. Jun 2007)

So... sorry für den Doppelpost...

Also ich hab jetzt mal alle Elemente soweit drin
hier mal ein Screenshot zur besseren vorstellung:



(die farben bleiben nicht so - sind nur zur besseren markierung ;-) )

Mein Problem ist nun noch das aktualisieren der Daten.

1. Ich habe es bisher einmal bereits so versucht ein php-script anzusprechen, dass lediglich einen String mit einem bestimmten Trennzeichen ausgibt (echo) und diesen habe ich geholt, per Tokenizer zerlegt und an die Komponenten verteilt. Funktioniert schnell und gut - nur: bisher ist es nicht variabel.... bin am überlegen die inhalte in ne textdatei auf dem Server zu schreiben und sie daraus zu holen...
Hat noch jemand andere/bessere Ideen dazu? DB würde ich inzwischen doch eher vermeiden, da ich denke dass es über ein File weit weniger kompliziert ist...

2. ich habe das mal auf einem Freehosting-dienst getestet und dabei ist mir ein evtl. Fehler aufgefallen:
bei dem Freehostingdienst wurde Werbung eingeblendet... und der Code dazu wurde dann auf meinem Ticker mit ausgegeben  :? das möchte ich verhindern. Gibt es auch eine Möglichkeit ähnlich wie in einer DB ein File auszulesen? also z.B:
heim=1
gast=2
...
und ich möchte die Zeile auslesen die den Wert für heim enthält z.B.

die beiden fragen vermischen sich jetzt vlt etwas... wäre toll wenn jemand noch Ideen für mich hätte.
Sollte ich Angaben vergessen haben liefer ich sie schnellstmöglich nach 
Danke!

Edit: achja...
3. In der textArea unten soll ein Kommentartext reinkommen.
Wie schaffe ich es dass immer alle Kommentare geholt werden, wenn bspw zwei Aktualisierungen seitens des Admins (also der Quelldatei) stattfinden während nur eine Aktualisierung des Viewers stattfindet.... der nimmt ja dann eigentlich nur die die aktuell im file steht .. Ich müsste also alle Kommentar zeilen speichern und alle holen (oder über eine Laufnummer prüfen) - oder?


----------



## Jonnsn (25. Jun 2007)

Mangels Antworten muss ich leider nochmal direkt anhängen. :? 

Obiger Post hat sich größtenteils erledigt.
ich habe es jetzt doch hinbekommen einen txt Datei mittels InputStream und Buffered Reader zu lesen.
Problem das bleibt:


> 3. In der textArea unten soll ein Kommentartext reinkommen.
> Wie schaffe ich es dass immer alle Kommentare geholt werden, wenn bspw zwei Aktualisierungen seitens des Admins (also der Quelldatei) stattfinden während nur eine Aktualisierung des Viewers stattfindet.... der nimmt ja dann eigentlich nur die die aktuell im file steht .. Ich müsste also alle Kommentar zeilen speichern und alle holen (oder über eine Laufnummer prüfen) - oder?


Das bekomme ich einfach nicht hin. Mit einem InputStream kann man ja anscheinend nicht an eine spezielle Zeile springen
Ich habe es zwischenzeitlich mit RandomAccessFile versucht - ist aber von Java Security unterbunden, müsste wohl signiert werden was ich gerne vermeiden würde.
Mein Code mit RandomAccessFile wäre so gewesen:


```
public void fileConnect(){
    	RandomAccessFile file = null;
    	try{
    		// Filepath ist die Variable mit dem Dateipfad (String)
    		file = new RandomAccessFile(filePath, "r" );
    		//init sind bestimmte Optionen die nur beim erstmaligen Starten des Applets ausgelesen werden müssen
    		if (init){
    			init = false;
    			// datenArray[10] ist ein StringArray
    			for (int i=0;i<3;i++){
        			datenArray[i] = file.readLine();
        		}
    			if (datenArray[0].equals("true")){
				// Aktualisieren ist ein JButton
    				aktualisieren.setVisible(true);
    			}
			// Strings mit Bildpfad
    			team1Image = datenArray[1]; 
    			team2Image = datenArray[2];
    		}
    		for (int i=3;i<7;i++){
    			file.seek(i);
    			datenArray[i] = file.readLine();
    		}
		//Methode die die Anzeige aktualisiert
    		DatenAktualisieren2(datenArray[5],datenArray[6],datenArray[3],datenArray[4]);
		//========================================================
		// Die restlichen Zeilen werden immer angehängt, damit das Viewer Applet immer alles holt
		// seit der letzten Aktualisierung, die Anzahl ist also variabel
		// aktKommentarzeile ist eine kurzzeitige Stringvariable mit der akt. eingelesenen Zeile
    		while(aktKommentarzeile!=null){
			// kommentarzeilenStand ist ein int mit der gemerkt wird bei welcher Zeile die
			// Anzeige des Viewers im Moment ist, erst ab der Zeile danach muss angehängt werden
    			file.seek(kommentarZeilenStand + 7);
    			aktKommentarzeile = file.readLine();
    			kommentarZeilenStand++;
		// Die Zeile enthält 3 Kommentare für drei textareas, getrennt mit #
                tokenizer = new StringTokenizer(aktKommentarzeile,"#");
                while ( tokenizer.hasMoreTokens() ){
                	for (int i=7;i<9;i++){
                		datenArray[i] = tokenizer.nextToken();
                	}
                }
		// anhängen an die textareas
                kommentare.append(datenArray[7]+"\n");
                tortext.append(datenArray[8]+"\n");
                foultext.append(datenArray[9]+"\n");
    		}

            // scrollen der TextAreas
            kommentare.setCaretPosition( kommentare.getDocument().getLength());
            tortext.setCaretPosition(tortext.getDocument().getLength());
            foultext.setCaretPosition(foultext.getDocument().getLength());
    	}
    	catch(FileNotFoundException e){
    		e.printStackTrace();
    	}
    	catch( java.io.IOException e ) {
    		e.printStackTrace();
    	}
}
```

 Jemand ne Idee wie sowas gehen könnte ohne die Sandbox zu verlassen ?

Vielen Dank fürs lesen und/oder jede Hilfe


----------



## Jonnsn (26. Jun 2007)

Selbstgespräche sind unschön - keiner einen hinweis oder eine Idee? Oder noch keiner der zeit genug hatte 

*Edit: ok habs inzwischen einigermaßen hingewurschtelt. *Er holt jetzt wirklich immer die daten die ich brauche...
nur zeigt sie das applet nicht so recht so an wie es das soll... es aktualisiert die TExtAreas manhcmal nur teilweise... wenn ich den Text darin markiere kommt er zum vorschein


----------

