2009-07-14 6 views
0

Also, ich habe eine Swing-GUI, die zu Testzwecken (die anderen Anwendungen, mit denen meine Aufgabe interagieren wird, noch nicht alle entwickelt sind), möchte ich in der Lage sein, eine "Debug-Konsole" zu geben.Replizieren Eclipse "Display-Registerkarte" in meiner Java/Swing-Anwendung?

Die Idee ist, dass ich diese Konsole verwenden konnte, um explizit Werte in meinem Modell festzulegen und zu überprüfen, dass die entsprechenden GUI-Elemente aktualisiert werden. Die "Anzeige-Registerkarte" des Eclipse-Debuggers ist im Grunde genau das, was ich möchte - sobald Sie einen Haltepunkt erreicht haben, können Sie Java-Code eingeben, der für den aktuellen Methodenkontext anwendbar ist, und diesen Code als Teil der Quelle am aktuellen Haltepunkt ausführen .

Aber ich möchte dies als Teil meiner Anwendung - ohne eine separate Anwendung (Eclipse) ausführen, setzen Sie einen Haltepunkt, drücken Sie den Haltepunkt, etc. (Das ist, was ich gerade mache - es funktioniert, aber es ist etwas nervig.) Gibt es eine vorhandene Bibliothek, die so etwas enthält?

+0

Warum möchten Sie diese doppelte Debug-Funktion? – akarnokd

+0

Ich glaube, ich habe das in der ursprünglichen Frage gesagt - aber ich möchte dies in meine App einbauen lassen, anstatt meine App + einen externen Debugger ausführen zu müssen und zur Laufzeit zwischen beiden hin und her schalten zu müssen. – Sbodd

Antwort

0

Eine interessante Technik ist hier, einen Textbereich in Verbindung mit JavaScript zu verwenden (die Rhino-Engine ist jetzt in JRE integriert). Das Skript hat Zugriff auf Ihre Anwendungsobjekte und umgekehrt.

Hier Informationen über calling Java from JavaScript

und hier Informationen über executing the script from the Java side - die Code-Beispiele gibt es ziemlich viel zu bauen, was Sie (nur nehmen Sie den Text in der TextPane und führen sie die Scripting-Engine) tun zu wollen.

Wir verwenden diese Art von Dingen für erweiterte Konfigurationsdialoge, in denen wir Funktionen einführen, aber noch keine solide grafische Benutzeroberfläche haben. Es ist cool b/c Sie können eine Schnittstelle in JavaScript implementieren und dann das resultierende Objekt an anderer Stelle in der Java-App verwenden.

+0

Das ist schön, danke! (Jetzt muss ich nur JavaScript lernen ...) – Sbodd

+0

hah - es ist nicht schwer für das, was Sie wahrscheinlich tun wollen - setzen Sie eine Variable, inspizieren Sie eine Variable. Ich überlasse es Ihnen zu entscheiden, ob Sie meine Antwort als die akzeptierte Antwort markieren sollten :-) –

+0

Ja, definitiv ausreichend für meine Bedürfnisse im Moment - sehr geschätzt. – Sbodd

Verwandte Themen