Matrix Prozess Monitor

Hey Leute,

lange nichts mehr von mir gegeben. Habe die letzten Monate so vor mich her programmiert. Zwischenzeitlich hatten wir hier auch einen Praktikanten, der mir bei meinem Java-Projekt weitergeholfen hat. So konnte ich meine etwas überladene Swing-GUI beiseite legen und mit dem Spring Framework eine Seite gestalten (ist bei Applikationen die auf dem Server laufen eh zu empfehlen 🙂 ).

Jetzt nachdem der Praktikant nicht mehr da ist gäbe es zwar noch ein paar Sachen die angepasst werden müssten, aber ich komme klar 😉

Die Tage gab es dann mal wieder eine rege Diskussion zu Matrix (dem Film), was denn möglich ist und was überhaupt mit Matrix gemeint ist (es ist wirklich nur ein Film Leute 😉 ). Allerdings finde ich die Idee mit dem, wie soll man ich sonst nennen, „Matrix-Regen“ gar nicht mal schlecht. Richtig angeordnet und richtig gelesen, könnte er viele Informationen enthalten. Diese Informationen lassen sich dann auch schneller wiedergeben als nur simpler Text.

Ein Programm habe ich ja, fehlt also nur der Regen. Als Basis habe ich mal den Code von Kenai zu Grunde genommen. Hier wird allerdings nur 40 mal der addDrop() ausgeführt und dann so lange selbst aufgerufen bis man das Programm beendet.

Um mit dem Programm zu arbeiten also erst einmal eine Interface-Klasse gebastelt, bei mir sieht diese in etwa so aus:

Hier wird dann für jeden übergebenen Drop eine Farb-Kombination in einer ArrayList gespeichert und bei Bedarf vom eigentlichen „Monitor-Thread“ ausgelesen und verarbeitet.

Den Monitor (Matrix.java) habe ich dann wie folgt geändert:

  • Zwei Variablen für die Farbe deklariert und bei der Interpolation hinterlegt
  • Die while Schleife im Matrix-Panel auskommentiert (möglicherweise brauche ich es doch noch) und einen Thread hinzugefügt (zum Aufrufen und Auswerten vom Interface).
  • Eine zweite addDrop() Funktion erstellt zum ändern der Farben

Abgeändert sieht er in meinem Fall also so aus:

Entgegen der Meldung der IDE (zumindest bei IDEA) werden die beiden Funktionen der Klasse Letter doch verwendet. Wie sie verwendet werden kann die IDE nur nicht wissen/ahnen.

Nun kann über das Interface jedes Mal ein drop hinzugefügt werden. Beispielsweise an allen Stellen, an denen ein Fehler auftritt (try, catch, exceptions). Dazu einfach nur folgenden Code an die beliebige Stelle einfügen:

Bemerkung: Wenn man das Spring Framework verwendet (oder irgendein anderes Framework, welches die Nutzung einer GUI eigentlich überflüssig macht, kann dies mit folgenden Zeilen umgehen:

Ob Nick damit etwas zu tun hat? ;P

Also ich mag den Prozess Monitor. Vielleicht kann ich ihn ja noch etwas ausbauen. Bis dahin…

Viel Spaß

Schreibe einen Kommentar