Model view controller 如何在griffon中打开主视图内的新窗口?

Model view controller 如何在griffon中打开主视图内的新窗口?,model-view-controller,griffon,Model View Controller,Griffon,我使用griffon的新版本1.2.0。 是否有办法通过单击按钮或其他方式在主应用程序窗口内打开新窗口(第二视图)?假设第二视图定义了一个顶级窗口容器,如下所示 application(id: 'secondaryWindow', ...) { /* content */ } 并且应用程序的配置文件(application.groovy)包含一个由“secondary”标识的MVC组定义,那么任何控制器都可以像这样弹出窗口 import griffon.transform.Threading

我使用griffon的新版本1.2.0。
是否有办法通过单击按钮或其他方式在主应用程序窗口内打开新窗口(第二视图)?

假设第二视图定义了一个顶级窗口容器,如下所示

application(id: 'secondaryWindow', ...) { /* content */ }
并且应用程序的配置文件(
application.groovy
)包含一个由“secondary”标识的MVC组定义,那么任何控制器都可以像这样弹出窗口

import griffon.transform.Threading

class SomeController {
    @Threading(Threading.Policy.INSIDE_UITHREAD_ASYNC)
    def showSecondary = {
        def group = createMVCGroup('secondary')
        app.windowManager.show('secondaryWindow')
    }
}

嗨,艾尔米雷。感谢您的快速回复。我尝试了上面的代码,但仍然出错。在第一次单击时,它不会显示错误,但在第二次单击时,它会显示如下错误:“无法实例化名为“window”的MVC组“window”,因为以前存在一个名为“window”的实例,并且该实例未被正确处理”。我将您的代码放在主控制器上,将视图放在第二个mvcGroup视图上。如果我可以把它描述成您所做的Groovy编辑,但我想当我点击菜单项时,它会显示主视图窗口中的第二个mvc视图窗口。需要您的指导。只有为特定MVC组的每个实例分配唯一的id,才能创建多个实例。我发布的示例没有分配id,因此mvcName用作id。有关名称冲突的更多信息,请参阅。你不能在另一个窗口中显示一个窗口,但是你可以在第一个窗口中添加更多组件。嗨,aalmiray。我想我用JInternalFrame找到了答案。谢谢你迄今为止的帮助,我真的很感激。顺便说一句,你真厉害D