【发布时间】:2013-04-22 08:05:16
【问题描述】:
我正在开发一个程序,该程序接受用户输入并生成输出作为地图投影图。 我发现的最简单的地图投影库是 matplotlib-basemap,它是用 python 编写的,这是一种我不太熟悉的语言(我在 Java 上工作)。我用 Java 编写了用户界面。目前,我正在执行 python 代码并使用调用“.py”文件的运行时和 exec() 命令发送带有数据的命令数组。 这将执行命令并将绘图显示为单独的窗口。
我的问题是: 是否可以在 Jpanel 上嵌入此底图(与缩放功能交互)?或者在可以嵌入 JPanel 的 python GUI 上? 我知道我可以将 matplotlib 生成的图像保存为可以固定在面板上的文件,但是它不会是交互式的,那么缩放功能将不可用。 还是使用基于 Java 的工具而不是底图更合适?(我还没有发现任何好的)
----2013 年 5 月 22 日编辑-----
Jython 不是解决方案,因为 matplotlib 与它不兼容。我同意在 python 中做所有事情是最佳的,但这是我必须使用的。
JACOB Jar:我找不到显示如何在 JPanel 或 JFrame 上嵌入单独应用程序(底图)的示例代码。
目前我正计划将底图嵌入到 wxpython GUI 中,然后使用套接字在两种语言之间进行通信。
带有服务器 Java 和客户端 Python 的 TCP/IP 套接字。
【问题讨论】:
-
请提供一些代码进行实验。
-
不是跨平台解决方案,但在 Windows 上这应该会有所帮助:SetParent function
-
我不禁要问,在这里使用 Jython 可以帮助您吗?
-
我对 Java 不太熟悉,但是否可以从 Python 脚本返回地图投影图,然后让您的 GUI 全部使用 Java?似乎您在将一个 GUI 嵌入另一个 GUI 时会遇到一些问题,但我可能是错的。还有 dc5553,我不相信这会有所帮助,您可以将 Jython 编译成 .jar,但这并没有多大帮助,而且我认为基本上破解 Java 解释器并从中提取内容会更加困难.
标签: java python runtime.exec matplotlib-basemap