代码之家  ›  专栏  ›  技术社区  ›  Miguel Ping

swingbuilder:滚动窗格

  •  0
  • Miguel Ping  · 技术社区  · 15 年前

    使用groovy的swingbuilder设置滚动窗格的正确方法是什么?我正在使用Griffon,动态添加和删除组件时遇到困难…

    这是我在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[])
    
          }
        }
      }
    }
    
    1 回复  |  直到 15 年前
        1
  •  2
  •   tim_yates    15 年前

    看起来这是一个重新喷漆的问题,因为这似乎有效:

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