- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发简单的桌面应用程序。
能够以类似 UML 的形式观察和修改模型结构非常有用,并且 EMF 允许这样做。我想将 EMF 代码生成方法与现有的 GUI 框架(即 Swing)结合起来,但我还没有找到任何现有的示例。
不知道是不是因为这个想法不合理?可能还有其他方法来掌握和编辑应用程序背后的模型结构并为具体的 GUI 框架生成代码?
最佳答案
模型驱动开发背后的主要思想之一是自动生成系统的替代表示。这些通常被称为模型到模型 (m2m) 和模型到代码 (m2t) 转换(尽管在某些情况下代码仅被视为另一个模型)。
EMF 是一个用于定义元模型的框架。元模型定义模型的语义。简而言之,元模型定义了可用于对特定域进行建模的类和属性。例如,UML 元模型允许您创建模型来表示软件系统。模型包括结构(类图),也可以包括行为(序列图、状态机等)。
与 EMF 相关,有许多框架和语言能够读取、修改和创建模型。例如Epsilon Framework提供各种模型管理语言来处理模型。 Epsilon 转换语言 (ETL) 允许您编写程序来执行 m2m 转换,Epsilon 生成语言 (EGL) 允许您编写程序来执行 m2t 转换。
因此,要从 UML 模型生成到具体 GUI 框架的代码,您可以使用 EGL 直接生成使用 GUI 框架的 API 的代码。另一种方法是首先使用 m2m 转换生成 GUI 模型(您将需要框架的元模型),然后执行 m2t。后一种方法可能是首选,因为 m2m 转换可以帮助您更好地突破 UML 和所选框架之间的语义差距。
既然你提到了电动势的产生,这也是一个可行的方法。但请注意,EMF 仅生成 Java 代码来表示元模型。在这种方法中,您必须编写所有 GUI 框架代码,这些代码将使用下面的 EMF 生成的代码作为基本模型。因此,我建议您使用 m2m 和 m2t 方法,您将能够生成大部分(如果不是全部)代码。
Epsilon 框架有一个简单的 tutorial EGL 上展示了如何从模型生成 HTML。它将帮助您了解需要什么。如果您的 GUI 框架是 HTML,那么这将是一个很好的起点。
详细了解 m2m 和 m2t 需要有关您拥有的特定 UML 模型以及您打算使用的目标 GUI 框架的更多详细信息。
关于java - EMF 产生 Swing 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18657292/
我正在开发一个摆动程序以显示多张图片。并且可以旋转图片(每个图片都以JComponent实现)。 问题是,当图片旋转时,JComponent的边框不会改变,因此图片会被剪切。 有什么办法也可以旋转边框
我有一个 JPanel 和一个 JButton 向量,我想将每个按钮添加到面板。 我遇到的问题是我有一个代表按钮向量的变量 btns,但宏函数只是将它视为一个符号,而不是一个向量。有没有办法以某种方式
我有一个 swing 应用程序,它覆盖 javax.swing.text.Document 以将基础文档的内容限制为某些字符和文本长度。我想将我的应用程序移植到 Javafx,但我不知道此类是否有 J
我有一个带有面板的简单应用程序,我想在单击它时暂停并重新开始绘画。 object ModulusPatterns extends SimpleSwingApplication { var dela
我似乎无法在 Swing 中强制布局。我有一个 JComponent添加到 JLayeredPane我在 JComponent 上设置了边框.然后,我想立即重新绘制所有内容 - 而不是像 invali
我有一个 Swing 应用程序,我想通过将外部文件从 Windows 资源管理器拖到应用程序上来导入外部文件。我有这个基本功能工作。但是,我想将默认的拖放光标图标更改为应用程序适当的光标。当鼠标键被按
我想在我的 Scala 摆动应用程序中使用一棵树,但该组件在 API 中不可用。 是否包装了 JTree存在吗? 如果没有,你对制作有什么建议吗? 谢谢 最佳答案 即使您可以在 Scala 程序中直接
我目前正在努力使我的 Swing 应用程序看起来更好。我想在这些方面实现一些目标: 这个想法是让每个框都有一个漂亮的标题,背景类似于上图。使用基本的 Swing 组件,我能得到的最接近的东西是添加 T
这是我在 Scala 中使用 Swing 的第一次实验,并且对下面的代码有一些疑问。它所做的只是生成一个带有可改变颜色的彩色矩形的窗口。请随时回答一个或任何一个问题。 1) 我在下面使用了 Java
一个愚蠢的问题,但我真的无法让它起作用:我在 Swing 应用程序中有一些长时间运行的过程,可能需要几分钟。我想在此过程进行时向用户显示进度对话框。我还想阻止用户执行进一步的操作,例如在进程进行时按下
如何获取秋千组件的默认背景色?我的意思是JPanel的默认背景色? 最佳答案 要获取创建面板时将使用的 DEFAULT 颜色,请使用: Color color = UIManager.getColor
我想更改特定表头的背景颜色。在我的应用程序中,我必须将当前月份的标题颜色设置为红色。 我的代码在这里:: jTable1.getTableHeader(). setDefaultRe
我正在努力使在 Java3D Canvas 上显示 Java Swing 组件并与之交互成为可能。我通过将透明 JPanel 绘制到缓冲图像来显示组件,然后使用 J3DGraphics2D 在 Can
嗨 当我在 swing 中创建按钮时,它会在文本周围添加边框,从而使按钮变大一点。 现在,我确实需要那个屏幕空间,我通常做的是创建一个文本项(禁用),它创建更小的组件大小(文本周围更小的空间)并向其添
有scala.swing.BoxPanel,但它似乎没有捕获重点,因为没有与javax.swing.Box工厂方法createHorizontalStrut等效的东西、createHorizo
我的 scala swing 应用程序中有一个 BoxPanel 按钮,这对我来说很难看,因为按钮的大小各不相同。我已将其更改为 GridPanel,但随后它们也垂直填充了面板,我发现这更难看。我怎样
我刚开始学习 Scala,作为学习过程的一部分,我一直在尝试使用 Swing 编写一些简单的脚本。 这是一个非常精简的例子,它展示了我所看到的问题。 SimpleSwingApp: import sc
我刚刚开始使用 clojure 和跷跷板制作 GUI 应用程序。它只创建一个 JFrame 和几个组件。这是代码。 main 函数除了调用 start-gui 什么也不做并在返回后立即退出。 (ns
Scala 是一种很棒的语言,但不幸的是缺少库文档。如何更改组件的初始大小?我什么都没有(故意),但无论如何都希望它是一定的。我目前有 ... contents = new BoxPanel(Orie
基本设置是这样的:我有一个垂直的 JSplitPane,我希望它有一个固定大小的底部组件和一个调整大小的顶部组件,我通过调用 setResizeWeight(1.0) 来完成。在此应用程序中,有一个按
我是一名优秀的程序员,十分优秀!