安卓使用Swing库?

5
我知道Android使用的是Java语言,但它并不是完全兼容的运行库。在Android中创建用户界面与普通的桌面Java完全不同。尽管如此,在我看来这是一件非常愚蠢的事情,很多Java应用程序都必须被重新编写为Android应用程序(而不仅仅是稍作修改)。
所以我的问题是:是否有第三方Swing库可用于Android?也就是说,是否有一个包含Swing兼容类的Java软件包,使得现有的Swing应用程序只需稍加修改即可在Android上运行?当然它不能100%兼容,但修改一些在Android上不存在的东西要比重写整个GUI部分少得多...
4个回答

6

在Android中无法使用Swing,因为Android不是基于JavaSE,而Swing是。Android使用一种特殊的Java设计来在DVM上运行。

即使没有兼容性问题。Swing用于桌面应用程序,这些应用程序与移动应用程序的用户界面完全不同。

因此,根据上述观点,您将不幸地不得不重新编写软件的UI。但好消息是,Android的UI非常简单且易于使用。给它一些时间,祝你好运!

编辑: Java SE和Android Java的比较


这是一个特殊的Java虚拟机,但Android确实有Java SE。 - Alexander Kulyakhtin
2
它使用了许多 Java SE 库,但没有人说它是“基于”Java SE。 - Mr.Me
3
@Alex说:"Android肯定拥有Java SE" —— 不,它并没有。在三种Java版本(SE、EE、ME)中,Android最接近SE。但是,许多完整的包都缺失了(例如Swing、JAX-RPC)。许多其他包只有部分实现(例如java.beansjava.awt)。 - CommonsWare
1
啊,我明白了,谢谢你指出我的错误,那是我的失误,我已经给答案点赞了。 - Alexander Kulyakhtin

3

Android上没有Swing。您可以开发JME应用程序并通过仿真运行,但这已经是最接近的了。不幸的是,在技术领域,事物总是在不断变化,所以对于程序员来说,这是“适应或死亡”的情况。


我查了一下,但是没有找到任何能够在 Android 2.3(姜饼)之后的系统上运行的模拟器。我错过了什么吗? - Stephen M -on strike-

3

CodeNameOne?

它被认为与Swing非常相似。

在我的经验中,GWT也有些类似于Swing。

但这两者都需要从Swing进行重写。


3

很遗憾,据我所知,Java Swing桌面应用程序无法在Android(Dalvik VM)上运行。但是好消息是:作为Swing GUI技术的继承者,JavaFX已经被移植到了移动和嵌入式平台(例如Android)上。如果您对此感兴趣,可以访问此链接了解详情。


JavaFX在移动设备上的免费版本有一个烦人的提示屏幕,因此不太适合应用程序开发。 - antonone
JavaFX移动版的免费版本有一个刺眼的提示屏幕,因此不适合应用程序开发。 - antonone

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