Python-GUI von Java

8

Ich arbeite an einem Programm, das eine Benutzereingabe nimmt und eine Ausgabe als Kartenprojektionsdiagramm erzeugt. Die einfachste Mapprojektionsbibliothek, die ich gefunden habe, ist matplotlib-basemap, geschrieben in Python, mit der ich nicht viel vertraut bin (ich arbeite an Java). Ich habe die Benutzeroberfläche in Java geschrieben. Derzeit führe ich den Python-Code aus und sende Befehlsarrays mit Daten mit Runtime und exec () -Befehl, der die ".py" -Datei aufruft. Dadurch wird der Befehl ausgeführt und das Diagramm als separates Fenster angezeigt.

Meine Frage ist das: Ist es möglich, diese Grundkarte (Interaktiv mit Zoom-Funktionen) in ein Jpanel einzubetten? Oder auf einer Python-GUI, die dann in ein JPanel eingebettet werden kann? Ich weiß, dass ich das von Matplotlib erzeugte Bild als eine Datei speichern kann, die auf einem Panel repariert werden kann, aber dann wird es nicht interaktiv sein. Die Zoom-Funktionen werden dann nicht verfügbar sein. Oder ist ein Java-basiertes Tool und nicht eine Basiskarte besser geeignet? (Ich habe keine so gut gefunden)

---- Bearbeiten Sie am 22. Mai 2013 ------

Jython ist keine Lösung, da Matplotlib damit nicht kompatibel ist. Die ganze Sache in Python zu machen, stimme ich zu, ist optimal, aber das ist es, womit ich arbeiten muss.

JACOB Jar: Ich konnte keinen Beispielcode finden, der zeigt, wie man eine separate Anwendung (Grundkarte) auf einem JPanel oder JFrame einbindet.

Momentan plane ich, die Grundkarte in eine wxpython-GUI einzubetten und dann Sockets für die Kommunikation zwischen den beiden Sprachen zu verwenden.

TCP / IP Socket mit Server Java und Client Python.

    
javaEd 22.04.2013, 08:05
quelle

2 Antworten

2

Dies ist, wenn Sie für neue Ideen offen sind und neue Dinge lernen Es ist keine Lösung für Ihr spezifisches Problem, dass Sie zwei Sprachen verbinden möchten, dies ist ein Ersatz für diese Idee, alles in Python zu integrieren.

%Vor%

Alles was Sie brauchen ist:

Python-Mockup als Submodul zu Javav

%Vor%

Zum Beispiel.

    
Torxed 14.05.2013 08:21
quelle
0

Sie können Ihre GUI sicherlich in Jython einbetten, einer Java-Implementierung von Python. Leider unterstützt es Matplotlib nicht, da es auf nativem Code beruht. Sie könnten versuchen, execnet zu verwenden, um Python von Jython aus aufzurufen.

    
Nicola Musatti 15.05.2013 13:02
quelle