0

groovyのSwingBuilderを使用してスクロールペインを設定する適切な方法は何ですか?グリフォンを使用していますが、コンポーネントを動的に追加および削除するのに苦労しています...

これがSwingPad内で試したスニペットです。正常に動作しますが、削除は、スクロールペインにスクロールバーがある場合にのみすぐに有効になります。そうでない場合は、4〜5秒かかります。

スニペットは次のとおりです。

import java.awt.Dimension

panel(id:'main') {
   panel {   
    button(name:'x', action: action(name:'add', closure:{p.add(label('new')); main.revalidate()}))
    button(action: action(name:'remove', closure:{p.removeAll();main.revalidate()}))
  }

    panel() {
      scrollPane(preferredSize: [200,200], constraints: context.CENTER) {
        panel(id:'p') {
          checkBoxList(listData: (1..20).collect([]){"Option $it"} as Object[])

      }
    }
  }
}
4

1 に答える 1

2

これは機能しているように見えるため、再描画の問題のようです。

  panel(id:'main') {
    panel {   
      button(name:'x', action: action(name:'add', closure:{p.add(label('new')); p.revalidate()}))
      button(action: action(name:'remove', closure:{p.removeAll();p.revalidate();scroll.repaint()}))
    }

    panel() {
      scrollPane(id:'scroll',preferredSize: [200,200], constraints: context.CENTER) {
        panel(id:'p') {
          checkBoxList(listData: (1..20).collect([]){"Option $it"} as Object[])
        }
      }
    }
  }
于 2009-08-19T09:20:11.510 に答える