PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Konsolen-Ticker-Applet


ZeroJump
02.04.2002, 15:31
Hallo, nach mehreren erfolgreich programmierten Applikationen wollte ich mich jetzt mal in die Welt der Applets stürzen.

Ich hatte vor eins von diesen typischen Applets zu programmieren: Schwarzer Hintergrund, Grüne Schrift. Und ein Text, der so konsolenmäßig auf dem Screen erscheint. Dabei soll auch so ein piepsen für jeden Buchstaben ausgegeben werden, ich denke ihr wisst, was ich meine.

Ich habe nur leider keine Ahnung, wie das umzusetzen sein könnte.

Ich wäre dankbar für Denkansätze oder einen Link zu einem Beispiel mit Source. Ich habe bis jetzt leider nix passendes gefunden! Vielen Dank, ZJ


StoreMaster
08.04.2002, 18:31
naja, also ich würd mal die auszugebenden zeichen per parameter übergeben. Diese in einen Vector, ArrayList oder Stringarray packen. Dieses dann Schleifenmässig für jeden Buchstaben durchlaufen und dazu einen Ton ausgeben.
Hab das selber noch nicht gemacht, aber so wäre mal mein Denkansatz. Also wenn da jemand eine andere Idee hätte, dann nur melden.

mfg
Store

p.s.: wenn du dein teil fertig hast, schick mir doch bitte deinen source

ZeroJump
09.04.2002, 15:25
und die zeitliche Verzögerung sollte ich wohl mit der Timer-Klasse erledigen, oder? So in etwa hab ich mir das auch vorgestellt.

Das mit dem Source kann dauern, da ich im Moment noch an etwas anderem dran bin (MP3-Tag-Editor mit Datenbankanbindung (ist noch geplant)), aber Du bist vorgemerkt.

Falls noch jemand Infos für mich hat, nur zu...

Thx ZJ

StoreMaster
09.04.2002, 15:46
ja thx. das hab ich auch mal wo gelesen. wie ist da genau die aufteilung der bytes für die mp3-tags?

ZeroJump
09.04.2002, 16:08
Also:

Der ID3V1-Tag steht immer am Ende jeder Mp3-Datei, falls er vorhanden ist. Es sind immer die letzten 128 Bytes. Die sind folgendermaßen aufgeteilt:

die ersten 3 Bytes sind die Buchstaben "TAG", die kennzeichnen sollen, dass jetzt der ID3V!-Tag kommt. Die nächsten 30 Bytes sind der Titel, die nächsten 30 die Gruppe, die nächsten 30 das Album, die nächsten 4 das Jahr, die nächsten 29 der Kommentar, das nächste die Liednummer (seit Version ID3V1.1), das lezte ist das Genre.

Das ist aber nur der V1-Tag, der jetzt aber durch den moderneren V2 abgelöst werden soll. Der steht immer am Anfang der Datei, kann variabel groß sein und beinhaltet wesentlich mehr Informationen als der V1. Viele, im Prinzip alle nötigen Informationen findest Du unter www.id3.org.

So long, ZJ

StoreMaster
09.04.2002, 17:37
jo danke, das wollte ich nämlich auch mal probieren... könnte man als option zur db auch ein abspielen der mp3´s zustandebringen?

uups, das war zu voreilig gepostet. unter dem link, den zu geschrieben hast, gibts was über eine eigene class für java zu lesen

Mac Fly
09.04.2002, 17:51
Wie wärs, wenn ihr mal ontopic bleibt, und nen mp3 Thread eröffnet? *fg*

ZeroJump
13.04.2002, 12:09
Naja, er hat halt gefragt, wäre mir auch lieber gewesen, wenn noch mehr zu meiner Frage gekommen wäre, aber ich wollte ihm halt helfen.

ZJ

StoreMaster
14.04.2002, 08:58
@ZeroJump
net schwitzen anfangen, Mac Fly hat hinten ein *fg* angestellt. also fühl dich net gleich pers. angegriffen.

@mod
eigentlich wäre hier sonst eh alles gesagt, kannste den thread auch closen.

ZeroJump
18.04.2002, 15:10
Ich habe mich ehrlichgesagt gar nicht angegriffen gefühlt, falls das so rübergekommen sein sollte.

Allerdings bin ich nicht damit einverstanden, dass der Thread geschlossen wird, da ich immernoch offen bin für alle Informationen zu meiner Ausgangsfrage, also dem "KonsolenTickerApplet".

Also lasst meinen Thread alive :D

StoreMaster
18.04.2002, 15:30
nana passt scho. wieso, hättest eine spezifische frage zu applets?

ZeroJump
18.04.2002, 15:53
Nein, aber ich wäre trotzdem dankbar für nen Link zu passendem Quellcode. :-) Da kann man dann ein bisschen abgeucken.

StoreMaster
18.04.2002, 15:58
schau dich mal da um --> applets (http://java.sun.com/applets/) , viellecicht wirst du dort fündig. die seite http://java.sun.com sollte immer die erste anlaufstelle sein...

ZeroJump
18.04.2002, 16:13
Also Aufforderungen nach Infos zu suchen kann ich nicht gebrauchen *g*

Denn da drauf bin ich schon selber gekommen.

StoreMaster
18.04.2002, 16:54
tja, dann darfst du nicht nach einem link fragen

Dominic Suter
19.04.2002, 07:47
Es gibt ein paar wenige Unterschiede zwischen einem applet und einer Applikation.

z.Bsp. public class DeineKlasse extends Applet
statt
public class DeineKlasse extends Frame.

Willst du so etwas hören oder wie du das Applet erstellen willst?

ZeroJump
19.04.2002, 16:56
Leute, was is hier los? Ich bin doch nicht blöd und bin auch kein Newbie mehr was Java betrifft und ich weiss auch, wie ein Applet funktioniert.

Ich bitte darum erst mal meine Ausgangsfrage zu lesen, bevor hier gepostet wird, wie ein Applet programmiert wird. Und was die Frage nach Links betrifft: Ich habe in meinem ersten Posting eindeutig erklärt, was ich für Informationen benötige. Nämlich infos zu einem "Konsolentickerapplet"!!!

Thx ZJ

StoreMaster
19.04.2002, 18:24
wer bist du dass du so auftrumpfen kannst?!
Ich habe nur leider keine Ahnung, wie das umzusetzen sein könnte.
das ist ein teil deines ersten posts. klar, dass du ein beispiel source zu deinem ticker willst (wir sind nämlich auch nicht blöd, weisst du!!).
aber was ist da schon dabei, wenn du schon so viel erfahrung hast wie du behauptest, dann dürfte sowas überhaupt kein problem sein. selber hab ich noch gar keinen source von einem ticker gesehn....

ZeroJump
20.04.2002, 10:13
Bei dem Zitat handelt es sich zwar um eine eindeutige Aussage, allerdings bezog sie sich nicht auf das praktische Umsetzen der Idee, sondern auf die IDEE selbst.

Ich benötige nicht mal unbedingt gleich den kompletten Source von dem Ticker, sondern wirklich gute Vorschläge, so wie der, den Du gepostet hast, als Du mich noch nicht so unqualifiziert von der Seite angemacht hast!

Ich wäre dankbar, wenn wir damit diesen Konflikt zur Seite legen könnten, da ich keine Lust hab, mich hier sinnlos mit irgendwelchen Leuten anzulegen.

ZJ

Dominic Suter
20.04.2002, 20:16
Ich verstehe dein Problem einfach nicht. Desshalb fragte ich ja extra nach, ob du so etwas wissen willst oder nicht.
So leid es mir tut, mir ist noch immer nicht klar, was du willst. Wie das Applet am Schluss aussehen soll (da du ja alles andere kannst...)?

StoreMaster
21.04.2002, 11:15
@ZeroJump
allles klar, streit beiseite... zu deinem problem, was ja eigentlich keines ist, hab ich eh schon gesagt, dass ich leider keinen code gesehn hab.... interessehalber würde ich den auch gerne sehn

@Stoenggi
er will ja bloss einen beispielsource, um zu sehn wie das andere machen würden

ZeroJump
23.04.2002, 14:51
Original von StoreMaster
@ZeroJump
allles klar, streit beiseite...


Wunderbar, wusste doch, dass man hier vernünftig bleiben kann 8)

@Stoenggi

Guck doch mal in mein erstes Posting, da hab ich versucht :D zu beschreiben, was ich eigentlich will.

Wie ein Applet grundsätzlich funktioniert weiss ich, ich brauche nur Hilfe bei der Umsetzung der beschriebenen Details. Inzwischen hab ich auch schon selbst getüfftelt und was hinbekommen. Allerdings hab ich jetzt ein paar konkretere Fragen:

1. Bei der Ausgabe des Tons wird leider auch ein "Knarren" erzeugt, was sich nicht gerade gut anhört, wie kann man selbiges beseitigen?

2. Das eigentliche "Tickern" findet in einem Thread statt. In der Methode run() habe ich eine Endlos-while-Schleife, die die Methode repaint() und damit paint() aufruft. In der Methode paint() wiederum werden zwei Counter hochgezählt, einer für den aktuellen String der ausgegeben wird (wird aus einem Array bezogen, dafür auch der Counter), und einer für die aktuelle Position im String, da ich das Tickern mit Hilfe der folgenden Anweisung erzeuge:

g.drawString(stringToWrite.substring(0,counterStringPos),x,y);

Durch die Schleife und das Hochzählen des Counters entsteht also so letztenendes der Tickereffekt.

Jetzt zu meiner Frage:
Wenn ich ein Fenster über das Applet geschoben habe, dann "vergisst" das Applet, dass es eben noch 2 Zeilen hingetickert hat, bzw. alles ist wieder weg. Wie kann ich das verhindern?

So, wenn man alle meine Postings gelesen hat, dann hoffe ich kann man verstehen, was ich für Sorgen habe.

Thx ZJ

StoreMaster
23.04.2002, 15:07
du musst die schrift und die position in einem vector, listarray oder objectarray speichern, und diesen inhalt in der paint() methode zeichnen. sonst vergisst er wo und was er da schon gezeichnet hat. er speichert sich das ganze nicht selber in einen buffer.

ZeroJump
23.04.2002, 15:15
Warum kann ich nicht ein normales String-Array nehmen?

Zum anderen, mal sehen, ob ich das jetzt richtig verstanden habe:

Ich lese die einzelnen Zeilen, als Parameter von der HTML-Seite in ein Object-Array.

Dann lasse ich das erste Element (also die erste Zeile) durchtickern. Wenn dann die zweite Zeile kommen soll, muss ich aber die erste nochmals schreiben, damit er, wenn ich ein Fenster darüber schiebe, nicht alles vergisst. Das ganze mache ich genauso für die anderen zeilen.

Das funktioniert doch aber dann nur solange, wie er am Tickern ist, da er ja nur dann ständig den Inhalt der Ausgabefläche aktualisiert. Was ist aber, wenn das Applet fertig ist mit seiner Aufgabe und ich dann ein Fenster darüber schiebe? Dann müsste doch trotzdem wieder alles weg sein, oder?

Jack
25.04.2002, 13:22
Konsolenapplet: Ein Array aus Strings und int line, int pos
Line für die Zeile und Pos für den letzten Char. Schreib dir n Thread der alle X Zeiteinheiten Pos um eins hochsetzt und ein Neuzeichnen auslöst. Überschreib am besten (korrigiert mich, lang ists her) die update (repaint ?) Methode, damit der Applet Screen nicht ständig gelöscht wird (sonst entsteht flackern).
Mehr sollts nicht gewesen sein ;)