【问题标题】:Java desktop development framework similar to Android?Java桌面开发框架类似于Android?
【发布时间】:2012-01-28 01:56:46
【问题描述】:

我最近一头扎进了用 Java 开发 Android 应用程序。这对我来说都是全新的,因为我的经验是使用 PHP 进行 Web 开发。但我也需要很快适应桌面环境(即 Windows)。

为了缓和一点学习曲线,有没有类似于 Android 框架的 Java 桌面开发框架?对于桌面应用程序,您会向只有 Android 的真正 Java/GUI 经验的人推荐哪些 Java GUI 和/或 MVC 框架、工具包和/或库?

备注

  1. 虽然提供 GUI 管理、小部件等的单一、统一的框架会很好,但它并不那么重要;我只是在寻找一些关于基本应用程序框架的建议以帮助我入门,以及可能与所述框架很好地配合使用的 GUI 库。

  2. 如果我详细说明我正在尝试做的事情,也许会有所帮助。我的目标是构建一个相当基本的 Android 应用程序,用于创建和管理某些记录,这些记录存储在本地,但可以与远程服务器同步。然后我需要一个桌面应用程序,它位于 Windows 系统托盘中,您单击它会弹出一个管理器窗口,该窗口提供与 Android 应用程序类似的功能。您会建议在桌面端使用哪些库来实现这些目标?

  3. 我希望在面向桌面的框架中找到关于 Android 框架的一些优点:

    • Android 会为您完成大量样板工作,您只需填写使您的应用与众不同的规则。

    • Android 允许您使用 XML 文件来描述演示文稿的物理布局,这有助于将处理用户交互的代码与描述布局的代码分开。

    • Android 提供了一个对用户非常友好的 SDK 和完整的工具堆栈,让您可以非常轻松地投入、实验和学习。

【问题讨论】:

    标签: java android user-interface frameworks desktop-application


    【解决方案1】:

    真的,没有什么类似于桌面的 Android GUI/架构。

    两个 java 桌面播放器是 Swing(原始的跨平台 GUI)和 SWT(Eclipse 和本机组件)。 Griffon 是一个桌面 Groovy MVC 框架,它抽象了很多工作。

    根据您的需要,可以选择在 Eclipse 或 NetBeans 中构建富客户端。

    构建一个基于网络的丰富平台甚至可能是有意义的;您可以使用任意数量的 Java Web 技术与嵌入式服务器一起分发——这通常是最方便的,特别是如果您希望能够跨平台托管相同的功能,或者将其作为服务推销,同时仍允许本地部署。

    【讨论】:

    • 我知道 Swing 和 SWT,因为它们是用于 Java 开发的最流行的 GUI 库。我希望找到更接近 Android 框架的一点,即使它不是真正的集成解决方案。例如,您对 SwiXML 有什么看法?并且没有任何 MVC 框架可用于使用 Java(不是 Groovy)构建应用程序吗?
    • @BrianLacy 我不知道任何正式的仅限 Java 的 MVC-beyond-Swing 版本框架,但这并不意味着没有。 SwiXML 看起来不错,但我个人不会打扰它,但是 YMMV。有多种类似构建器的解决方案可用,但我对其中任何一个都不太熟悉。
    【解决方案2】:

    好吧,你可以试试 Apache Pivot。它使用 XML 文件来定义用户界面的内容。 UI 类包括窗口、对话框、按钮、列表、文本输入、布局、拖放等。

    正如Apache Pivot site 所说:

    Pivot 允许开发人员使用 Java 或任何其他 JVM 语言(例如 JavaScript、Groovy 或 Scala)轻松构建具有视觉吸引力的跨平台连接应用程序。

    Pivot 使开发人员能够使用他们已知的工具构建解决方案,从而缩短交付时间并减少技术蔓延。

    以下是用于创建“Hello Word”应用程序 UI 的 XML 示例:

    <Window title="Hello BXML!" maximized="true"
                xmlns:bxml="http://pivot.apache.org/bxml"
                xmlns="org.apache.pivot.wtk">
                <Label text="Hello BXML!"
                    styles="{font:'Arial bold 24', color:'#ff0000',
                        horizontalAlignment:'center', verticalAlignment:'center'}"/>
    </Window>
    

    或者another one example的简单应用GUI:

    <Window title="Hello" maximized="true"
        xmlns:wtkx="http://pivot.apache.org/wtkx"
        xmlns="org.apache.pivot.wtk">
        <content>
            <BoxPane styles="{padding:4, horizontalAlignment:'center', verticalAlignment:'center'}">
                <Label wtkx:id="label1" text="Please enter your name"
                  styles="{font:'Arial 20', color:'#ff0000',
                      horizontalAlignment:'center', verticalAlignment:'center'}"/>
                  <TextInput wtkx:id="text1"  /> 
                  <PushButton wtkx:id="button1" buttonData="Enter"/>
            </BoxPane>
        </content>
    </Window>
    

    它在某些方面类似于 Android GUI 架构。

    【讨论】:

    • 这太棒了,我以前从未听说过 Pivot,但它似乎正是我当时正在寻找的东西。我不再过多地参与 Java 开发,但我认为这个答案足以在两年后偷走 Accept。
    【解决方案3】:

    如果您的动机真的是 Android 应用程序开发,我建议不要担心 Java GUI,因为两者是不同的世界。 Android 确实使用 Java/Object Orientation 作为开发语言(语法和语义),但它不关心 Java GUI api 和其他一些 api。如果你真的想学习 Java 桌面 GUI,有几个包叫做 Swing。你可以看看那些。

    【讨论】:

    • 我必须同时构建 Android 和桌面应用程序,它们与服务器集成以以不同方式共享和操作相同的数据。如果我不需要担心桌面 GUI 开发,我就不会问了。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 2013-08-18
    • 2011-07-07
    • 1970-01-01
    相关资源
    最近更新 更多