# Eigenen Event erstellen



## Jobless (7. Januar 2007)

Hallo erstmal,

Ich habe ein Programm von C# nach Java portiert. Das Programm erstellt aus div. Textdateien eine SQL-Anweisung und diese lädt die Daten aus den Textdateien ins Web auf einen MySQL-Server.
Das Java-Programm funktioniert soweit auch prima, bis auf einige Dinge die jetzt auftreten, da sie anders gehandelt werden als bei C#.

Kurz zum Ablauf des Programmes, zum Verständnis:
Die Textdateien enthalten ein Datum, eine Zeit und ein oder mehrere Interger-Daten.
Diese Textdatei wird durch einen Identifier entsprechen analysiert um festzustellen welche Daten vorliegen, um sie in die richtige Tabelle einzutragen.
Dann werden die Dateien in einem Tokenizer zerlegt und das SQl-Sript erstellt.
Zuletzt werden die Daten in die Db geschrieben.
Innerhalb der einzelnen Klassen, kann es zu Exceptions kommen, die ich als MessageBox ausgeben und in eine Log-Datei schreiben will. Da die Unterklassen keine JFrames sind kann ich die Message nicht als JDialog ausgeben und wollte sie an das Hauptfenster als String übergeben, um die Meldung anzuzeigen.

Hier kommt das erste Problem. Nach dem Laden der Textdatei wird ein Thread gestartet, dieser kennt das Hauptfenster nicht mehr. Also müsste ich einen Event erstellen. Alles was ich bisher im Web gefunden habe ist nicht ganz schlüssig für mich.

Das 2. Problem, das kommt ist, dass ich wenn der komplette Thread abgearbeitet ist eine Fertigmeldung an das Hauptfenster schicken will, um evtl. aus dem Filedialog mehrere Dateien laden zu können. Somit eigentlich wieder ein Event.

Die vorhandenen Events kann ich nicht verwenden, weiß allerdings auch nicht wie ich unter Java einen eigenen Event erstellen kann. Das ist unter C# wesentlich einfacher gewesen.


----------



## Jobless (7. Januar 2007)

Nun.

Ich habe mir jetzt selbst geholfen.

Ich habe mir nun die WindowsForms als Referenz übergeben, um damit auf die entsprechenden Methoden bzw. selbst gebauten Properties zugreifen zu können.

Die Rückmeldung der Threads werde ich genauso machen, in der Mainfunktion werde ich eine public Methode generieren, in der ich die Funktionen nach dem abarbeiten der Threads audführe.

Sollte einer eine bessere Idee haben, bin ich für jetwede Anregung offen.

Cya


----------



## andy72 (8. Januar 2007)

Hi, eine mögliche Lösung wäre für den Thread:


```
public void doThread(final Object obj) {
  try {
    EventQueue.invokeAndWait(new Runnable() {
      public void run() {
        // Benutze Object
      }
    });
  }
  catch(Exception e) {
    e.printStackTrace();
  }
}
```


----------

