2011-11-14 10 views
0

私は、プロジェクトが再び移動を取得することができます期待して予定より遅れているデスクトップアプリケーションプロジェクトに投げ込まれましたが、残念ながら、私はデスクトップアプリケーションの開発にはほとんど経験を持っています。MigLayoutで要素を無限に成長させるにはどうすればよいですか?

私predacessorは一種の、彼が何をやっていた知っているように見えたが、完成したものを得ることができないので、私はmesssをアップパッチを適用し、ドアをプロジェクトを取得しようと左にしていません。

このアプリケーションでは、グリフォンをフレームワークとして使用し、MigLayoutをレイアウトマネージャとして使用していますが、そのほとんどがハングアップしていると思いますが、仕様に必要な成長動作を取得する方法がわかりません。

ここで私が働いているとの見方だ。私は大きなウィンドウをドラッグすると上部に、

application(title: 'MyApp', 
     preferredSize: [320, 240], 
     pack: true, 
     locationByPlatform: true, 
     iconImage: imageIcon('/griffon-icon-48x48.png').image, 
     iconImages: [imageIcon('/griffon-icon-48x48.png').image, 
       imageIcon('/griffon-icon-32x32.png').image, 
       imageIcon('/griffon-icon-16x16.png').image]) { 
    panel(layout: new MigLayout()) { 
     label 'Root Directory:', constraints: 'split, span' 
     textField text: 'Put RootDir here', constraints: 'growx' 
     button 'Dialog', constraints: 'wrap' 

     label 'To be Processed:' 
     button 'Go button', constraints: 'spany 3' 
     label 'Processed:', constraints: 'wrap' 

     scrollPane(constraints: 'center, grow') { 
      list listData: (1..20).collect { "Very Long Line $it" } 
     } 
     scrollPane(constraints: 'center, grow, wrap') { 
      list listData: (1..5).collect { "Line $it" } 
     } 

     label 'info about files' 
     label 'info about files', constraints: 'wrap' 

     progressBar constraints: 'span, growx, wrap' 
     progressBar constraints: 'span, growx' 
    } 
} 

テキストフィールドを、下に2本のプログレスバーはスペースを埋めるためにストレッチすることになっているが、 2つのリストは両方向に伸びるはずです。残りの要素のサイズは同じに維持する必要があります。

columnsというプロパティを非常に大きく設定しても、上のテキストボックスを伸ばすことはできますが、それでも多くの列は表示されず、それ以上は表示されません。

リストも全く垂直成長しない、と私は得ることができました最高のは右のリストには、いくつかのunknowサイズに成長することですし、左側のリストが成長します。私は完全な窓を埋めるために含むパネルを得ることができる場合

プログレスバーが罰金である、含むパネルがないほど大に成長します。

だから、私はキー何枚足りませんか?私はそれがいくつかの小さな要素であると確信していますが、私がどんなに頑張っても、私はものが正しく成長するように見えません。すべてのヘルプは大歓迎大幅です。

答えて

4

を試してみてください。

は変更してみてください:

panel(layout: new MigLayout()) { 

panel(layout: new MigLayout('fill')) { 
+0

良い点に短縮することができます。私は 'growx'に気付き、2つのscollpanesで 'grow'に気付かなかった。 –

1

は、私は問題があなたのルートパネルがリサイズされていないということだと思うので、そのパネル内部の要素のどれもが今までサイズを変更する必要はありません

panel(layout: new MigLayout(**"fillx"**)) { 
2

に他の人がコメントしたようにMigLayoutをインスタンス化するとき、あなたは適切なレイアウト制約を設定する必要があります。あなたはmiglayout pluginを持っている場合 は、コードは「塗りつぶし」ではなく「fillx」を使用してに関する次の

application(title: ...) { 
    migLayout layoutConstraints: 'fill' 
    label 'Root Directory:', constraints: 'split, span' 
    ... 
} 
関連する問題