【问题标题】:SwingBuilder: scrollPaneSwingBuilder:滚动窗格
【发布时间】:2009-08-17 15:29:05
【问题描述】:

使用 groovy 的 SwingBuilder 设置滚动窗格的正确方法是什么?我正在使用 griffon,我很难动态添加和删除组件...

这是我在 SwingPad 中尝试过的一个 sn-p。它工作正常,但如果我的滚动窗格有滚动条,则删除只会产生 立即 效果。如果没有,则需要 4-5 秒。

这是sn-p:

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[])

      }
    }
  }
}

【问题讨论】:

    标签: java swing groovy scroll griffon


    【解决方案1】:

    看起来这是一个重绘问题,因为这似乎有效:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 1970-01-01
      • 2012-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多