您说您已经了解 C++ 和 Java,并且您以前从未做过 GUI。这意味着:
- 无论您选择 Java GUI 还是 C++ GUI,您都需要学习如何处理 GUI 框架
- 如果你选择了Java,你还需要学习如何在两种语言之间进行交互
因此,留在 C++ 中可以为您节省一件事来学习。嗯,学习一些东西总是一个好主意,但同时学习两个新概念可能是个坏主意。无论如何,学习可能是较小的负担,我想这涉及到很多实际工作,即使您使用 SWIG 之类的工具也是如此。
您可能想知道用 Java 编写 GUI 还是用 C++ 编写 GUI 更容易。这取决于选择的框架。对于 Java,您有 AWT 和 Swing,它们是默认 Java 发行版的一部分,然后是 Eclipse 使用的 SWT,例如。对于 C++,有很多工具包,其中 Qt、GTK 和 wxWidgets 是最流行的,这三个工具包都支持每个主要平台。这些“C++”GUI 工具包中的大多数还具有Java 绑定甚至Java 端口,因此您也可以将它们与Java 一起使用。
到目前为止,我已经使用了 Swing、Qt 和其他一些对您的情况没有帮助的东西(Borland C++ Builder 和 .NET 上的 WinForms 附带的 UI 东西)。基本上,所有这些框架的概念都是相同的,我发现没有一个比另一个更难或更容易。唯一的例外可能是 Java,因为我从来没有让那些 LayoutManagers 工作,即使其他工具包具有易于掌握的 LayoutManagers 等价物。但也许那只是我。
人们还会告诉您,Java GUI 总是很丑陋并且不适合主机系统。好吧,大多数 Java GUI 确实如此,但恕我直言,这不是因为 Java,而是因为糟糕的编程。让 Swing 应用程序适应操作系统的外观和感觉需要两行代码,而大多数程序员根本没有在 Java GUI 上投入足够的精力来复制和粘贴这两行代码……你可以想象有多少他们关心其余的 GUI 设计。
对于你目前的情况,我会推荐一个 C++ GUI,但是如果你知道你未来的计划是什么样的,并且如果你知道你将在你的余生中使用 Java GUI,那么现在开始并采取的额外努力。
如果你为 GUI 选择了 C++,人们会告诉你各种各样的东西来把你拉向任何方向。三大可移植框架都有其优点和缺点,但我不认为其中有任何一个最好或最差的。我推荐 Qt 仅仅是因为我已经使用过它——但如果我碰巧使用了 GTK 或 wxWidgets,我可能会建议这样做。