将JavaFX与Python结合使用

6
我想知道是否可能使用JavaFX设计GUI,然后再结合一些Python代码(例如使用JavaFX创建按钮,然后在Python中编写处理程序代码以提供某些功能)。
JavaFX非常适合设计出一个很好的GUI,我需要Python来控制机器人(这些库只能用Python编写)。
我在网上找到了Jython,但我不确定它是否允许我使用这些第三方Python库。
有没有好的建议或任何信息源我可以看看?感谢您提前的帮助。

1
Jython和Python是同一种语言,但是在使用库方面,它们有很大的不同。我非常怀疑那些库是否可用于Jython,因为它们应该使用零dll,许多有趣的Python库部分是用C++或Fortran编写的。在这种情况下,Jython无法加载它们。 - minus
1个回答

7

是的,你可以使用Python(Jython)编写JavaFX用户界面:

#!/usr/bin/env jython
'''
"Hello, World!" in Jython and JavaFX

Roughly based on this: http://docs.oracle.com/javafx/2/get_started/hello_world.htm
'''

import sys

from javafx.application import Application

class HelloWorld(Application):

    @classmethod
    def main(cls, args):
        HelloWorld.launch(cls, args)

    def start(self, primaryStage):
        primaryStage.setTitle('Hello World!')

        from javafx.scene import Scene
        from javafx.scene.layout import StackPane
        primaryStage.setScene(Scene(StackPane(), 320, 240))
        primaryStage.show()

if __name__ == '__main__':
    HelloWorld.main(sys.argv)

这很简单,我正在做。

您也可以使用Java编写JavaFX UI,并使用对象工厂之类的东西将控件分配给Python(Jython)代码。有关更多信息,请参见此处:http://www.jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html#using-jython-within-java-applications


我该如何在Python中安装javafx模块? 我尝试导入它,但是会出现回溯并显示No module named 'javafx'。 - Rahat Zaman
你不能将它安装到 Python 中,但在某些 Java 版本的 Jython 中隐式地可用,并且如果你使用的 Java 版本中没有它,则可以手动将 jfxrt.jar 添加到模块搜索路径中。 (如果你需要更多帮助,那么最好开启一个新问题。) - davidrmcharles
2
问题在于,尽管Jython是一个非常好的想法,但它的用户群体很小,没有v3的迹象,而且负责该项目的人给人一种小圈子的印象:甚至没有论坛,只有一个邮件列表!我用过它,它确实有效...但除非出现奇迹,否则你将始终学习一项利基技能。 - mike rodent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接