javascript in javaprogramm JOptionpane -> haengt (embedded Interpreter)

iwl

Neues Mitglied
Hallo Leute,

ich habe hier ein Javaprogramm welches einen eingebauten Javascript-Interpreter hat damit der User Funktionen scripten kann, man kann prinzipiell auf ganz Java zugreifen.
Leider lassen einfachste Dialog-Funktionen im Script das ganze Programm hängen.
Kann man da durch Tricks im Script was machen, neuer Thread, MessageLoop, ???
Java:
importClass(javax.swing.JOptionPane);

function getInfo(info) {
info.name = "Script";
info.description = "ScriptInfo";
info.interval = 60; // Skriptausführung alle 60 Sekunden
}

//Das Programm ruft run auf alle Intervall Sekunden
function run() {
JOptionPane.showMessageDialog(null, "Test", "Test Titel", JOptionPane.OK_CANCEL_OPTION);
}
Sobald ich dieses Script aktiviere haengt das Programm und muss gekillt werden.
Das Option-Pane wird nicht mehr angezeigt.

Kann ich eventuell einen eigenen Thread mit MessageLoop starten und es könnte gehen?
(Ins blaue geraten) - Hat jemand eine Idee dazu.

Andere Sachen ohne Ausgabe funktionieren.
Einen Nonmodale Dialogbox habe ich auch schon probiert, da haengt zwar dann nichts,
kommt aber auch kein Fenster und nichts, alert usw geht auch nicht.
 
Also, ich kenne dein Programm nicht aber es würde mich wundern wenn du da einfach so java mit javascript code mischen kannst. Wenn dann musst du bei javascript bleiben und auf javascript Art einen dialog aufmachen (glaube mit alert geht das).
Java:
//Das Programm ruft run auf alle Intervall Sekunden
function run() {           //das hier ist javascript
JOptionPane.showMessageDialog(null, "Test", "Test Titel", JOptionPane.OK_CANCEL_OPTION);      // das hier ist java
}
 
Und wie schreibt man

Code:
JOptionPane.showMessageDialog(null, "Test", "Test Titel", JOptionPane.OK_CANCEL_OPTION);

dann in Javascript-Syntax, die java-Klasse hat er oben ja schon erfolgreich importiert (importClass).

Man kann java API aus dem Scripting aufrufen FileIO / Sockets und dergleichen geht.

Ich vermute halt ich muss einen eigenen MessageLoop aufmachen.

Das alert nicht geht schrieb ich ja schon.
 

Neue Themen


Zurück
Oben