Java Swing - GUI和编码之间的分离?

时间:2010-11-06 14:09:46

标签: java user-interface swing

我一直在使用网络应用程序,这就是我喜欢做的事情。 对于我的OOP课程,我的教授决定“强加”我使用Java。我一直用java来制作控制台应用程序,这不是问题。

有什么问题?问题是我从来没有为桌面应用程序开发GUI,所以我一直在寻找教程。我找到了一些非常有趣的教程,但有一些我在那里找不到。

好的,让我解释一下。作为撰写论文的支持框架,我使用了Flex3版本的PureMVC。 Flex 3有一些非常酷的东西:您可以将界面结构与界面“编码”分开。 您可以在mxml中编写结构,这是一种类似HTML的语言,您甚至可以使用类似CSS的语言添加样式。添加事件时,可以在单独的类(在AS3中)中编写该事件的编码。

Swing有类似的东西吗?或者如果不是,那么Swing是否存在允许它的GUI库?

编辑:感谢您的回答,我仍在评估您的解决方案。

7 个答案:

答案 0 :(得分:4)

您可以尝试Swing JavaBuilder之类的内容。它允许您在YAML中定义GUI的组件和布局,将布局定义与“代码”部分分开。轻弹docs以查看它是否听起来像您正在寻找的内容。

(免责声明:我听说过这个库,并认为这听起来不错,但由于我总是手工编写Swing,所以还没有用过它。)

答案 1 :(得分:2)

我所知道的Swing并没有完全相同的东西。 Java是代码,而不是标记,因此它将与您的HTML / CSS / Flex体验不同。

Swing是在90年代后期构思出来的;期望它符合2010年构建UI方式的概念是不现实的。

你可以让L& F换掉,但它不像CSS。

您在Java世界中最接近Flex的是JavaFX。我认为这不会让世界炙手可热。采用率并非其创作者所希望的。

我建议为这门课程吮吸它并完成它。

答案 2 :(得分:1)

也许您会对apache pivot框架感兴趣。

答案 3 :(得分:1)

你写过你使用的是PureMVC的Flex版本,它很棒。你为什么不想尝试Java版本呢? PureMVC for Java

我已经使用它1年了,它完美无缺!您可以获得MVC模式的所有优势并开发真正重要的应用程序。甚至还有一个多核版本可以与Pipes结合使用,以便您创建MDI应用程序。

答案 4 :(得分:0)

您可以尝试MetaWidget

author describes it as框架
  

Metawidget获取现有的后端域对象,并在运行时创建现有前端框架的原生UI组件:

答案 5 :(得分:0)

嗯。也许我不完全理解这个问题。但我认为值得一提的是这两件事:

  • 是的,Java是“正义”的代码,但您可以将创建图形的代码与处理事件的代码分开。这实际上被认为是“良好做法”。所以“当你添加事件时,你在一个单独的类中写下该事件的编码。”要做到这一点,你可以使用let说的JFrame类,但不要实现ActionListener。 编写自己的ActionListener 并将其实例作为JFrame的成员。然后,当您想要添加事件代码时,将其放在ActionListener中。

  • 我对Java没有这方面的经验,但我知道NetBeans附带了一个图形编辑器,可能会以拖放的方式处理整个图形编码,还有提供此功能的Eclipse插件。我相信如果您使用这些工具中的任何一种,默认情况下您也会将图形和事件处理分开。

希望有所帮助。如果在谷歌搜索等之后需要更多细节,请告诉我。

答案 6 :(得分:0)

Dierre,

很高兴听到您在使用Metawidget演示时遇到问题。我相信这与在Linux上运行的Groovy Console applet有关,而不是与Metawidget本身有关。

请您告诉我您遇到的问题,以便我可以将其附加到我与Groovy团队合作的问题上:http://jira.codehaus.org/browse/GROOVY-3604

此致

理查德。