1

現在、Griffon 0.9.5 とFlamingoBuilderを使用してアプリケーションを作成しようとしています。

Application.groovyの値を変更frameClassし、アプリケーション ウィンドウにリボンを追加するためにいくつかのことを試しました。'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
        }
)

最初の試行のスクリーンショット


2 回目の試行では、明示的に を作成し、RibbonTaskを呼び出しますaddTask。ボタンが表示されます。ただし、これが本当にグリフォン流のやり方なのかどうかはわかりません。 質問:リボンを作成するより良い方法はありますか?

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
        }
)

2 回目の試行のスクリーンショット


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ます。私は少し途方に暮れています。このコード スニペットの何が問題になっていますか?

4

1 に答える 1

1

最初の問題は、application()ノードファクトリとribbonFrame()ファクトリに関連していると思います。ご覧のとおり、Griffonは、フレームサブクラスが他の通常のJFrameと同じように動作することを前提としていますが、JRibbonFrameはその子を別の方法で処理します。これはApplicationFactoryには認識されないため、2番目のスニペットに示すように手動でリボンタスクを追加しない限り、リボンタスクの追加は「失敗」します。

この問題は、親子関係コードをribbonFrame()からribbonBand/ribbonTaskファクトリに移動することで修正できます。これには、FlamingoBuilderの新しいリリースが必要です。

2番目の問題では、それは私たちの側のバグのようです。いずれにせよFlamingoBuilderを更新する必要があることを考慮して、この問題も修正します。

于 2012-05-31T08:48:41.837 に答える