我目前正在尝试使用 Griffon 0.9.5 和FlamingoBuilder创建一个应用程序。
我已将Application.groovyframeClass
中的值更改为并尝试了一些操作,以便将功能区添加到应用程序窗口。'org.jvnet.flamingo.ribbon.JRibbonFrame'
我的第一次尝试是创建一个ribbonTask
带有嵌套节点的ribbonBand
节点。应用程序启动,但未显示按钮。
application(title: 'test01',
preferredSize: [320, 240],
pack: true,
locationByPlatform: true,
iconImage: imageIcon('/griffon-icon-48x48.png').image,
{
ribbonTask(title: 'Start') {
ribbonBand(id: 'fooBarBand', title: 'FooBar', image: imageIcon('/griffon-icon-48x48.png').image) {
commandButton(id: 'fooButton', text: 'Foo', image: imageIcon('/griffon-icon-48x48.png').image)
commandButton(id: 'barButton', text: 'Bar', image: imageIcon('/griffon-icon-48x48.png').image)
}
}
// add content here
label('Content Goes Here') // delete me
}
)
在我的第二次尝试中,我明确地创建了一个RibbonTask
并调用了addTask
. 显示按钮。但是,我不确定这是否真的是 Griffon 的做事方式。
问题:有没有更好的方法来创建功能区?
application(title: 'test01',
preferredSize: [320, 240],
pack: true,
locationByPlatform: true,
iconImage: imageIcon('/griffon-icon-48x48.png').image,
{
ribbonBand(id: 'fooBarBand', title: 'FooBar', image: imageIcon('/griffon-icon-48x48.png').image) {
commandButton(id: 'fooButton', text: 'Foo', image: imageIcon('/griffon-icon-48x48.png').image)
commandButton(id: 'barButton', text: 'Bar', image: imageIcon('/griffon-icon-48x48.png').image)
}
current.ribbon.addTask new RibbonTask('Start', fooBarBand)
// add content here
label('Content Goes Here') // delete me
}
)
然后我尝试ribbonApplicationMenu
使用以下代码片段添加一个:
ribbonApplicationMenu(id: 'appMenu') {
ribbonApplicationMenuEntryPrimary(id: 'quitMenuEntry', text: 'Quit',
entryKind: JCommandButton.CommandButtonKind.ACTION_ONLY,
image: imageIcon('/griffon-icon-48x48.png').image)
}
但是,它不起作用。我得到以下运行时异常:
java.lang.RuntimeException:无法为“ribbonApplicationMenuEntryPrimary”创建组件原因:groovy.lang.MissingPropertyException:没有这样的属性:类的文本:griffon.builder.flamingo.factory.RibbonApplicationMenuEntryPrimaryFactory
FlamingoBuilder的文档指出有一个text
属性,当我删除 text 属性时,我得到一个异常,因为text
必须设置该属性。我有点不知所措。这个代码片段有什么问题?