Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
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
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.
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.
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.
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
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.
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?
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:
Code:
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 ?
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