我想将 MVVM WPF 应用程序改编为 GroovyFX。我对 Groovy 和 GroovyFX 本身没有太多经验,也没有太多可用的信息。
该设计包括一个主窗口,里面有一个面板。比方说,当用户按下按钮时,应用程序会删除中央面板子项并插入符合目标视图的新“节点树”。
让我们看一些代码
import groovyx.javafx.GroovyFX
import groovyx.javafx.SceneGraphBuilder
import static groovyx.javafx.GroovyFX.start
import javafx.fxml.FXMLLoader
import javafx.scene.layout.StackPane;
def controller = new MainWindowController()
def loader = new FXMLLoader(getClass().getResource("gui.fxml"));
def myPane = loader.load();
start
{
stage(title: "Tasks!", x: 100, y: 100, width: 400, height: 400, visible: true,
style: "decorated", onHidden: { println "Close"})
{
scene(fill: GROOVYBLUE)
{
vbox(spacing: 10, padding: 10)
{
button(text:"Show!",onAction:{ controller.activityPanel.getChildren().clear() controller.activityPanel.getChildren().add(myPane)})
controller.activityPanel=stackPane()
}
}
}
}
当用户按下按钮时,位于主窗口内的 stackPane 将接收 myPane 的内容并显示此“视图”。问题是
- 如何通过代码定义此视图“myPane”?我只找到了 fxml 解决方案。
- 如果 fxml 是唯一的方法,您是否知道任何有关如何使用 GroovyFX 实例化控制器类并绑定其成员的示例代码?
这个想法类似于 jfx-flow 项目,但在 GroovyFX 中。