2013-03-20 41 views
0

我试图实现类似于旋转木马的布局。它需要在第二行中有一个复选框字段水平添加图像。我在jscrollpane中有一个面板,单个图像作为标签添加到面板。请看屏幕截图。gridbaglayout的第二行滚动出容器

screenshot
enter image description here

当我滚动面板,包含图像的第一行保持良好的panel..but内,如果你发现复选框的第二行,它滚出面板。下面是代码...

JLabel lab1=new JLabel(); 
for (int ii=0; ii<imageFiles.length; ii++) { 
     GridBagConstraints constraint = new GridBagConstraints(); 
     lab1 = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB); 

     constraint.gridx = ii; 
     constraint.gridy =0; 
     jPanel9.add(lab1,constraint); 
    } 
    for (int ii=0; ii<imageFiles.length; ii++) { 
     GridBagConstraints constraint1 = new GridBagConstraints();   
     constraint1.anchor = GridBagConstraints.SOUTH;   
     chkbox = new Checkbox("asdasdada"); 
     constraint1.gridx = ii; 
     constraint1.gridy =1; 

     jPanel9.add(chkbox, constraint1); 
     } 

不知道什么是wrong..Any的帮助是非常appreciated..Thanks ..

+1

最好的办法是创建并发布[sscce](http://sscce.org)。 – 2013-03-20 13:26:20

+1

这是GridLayout的工作(int,int,int,int) – mKorbel 2013-03-20 13:28:32

+2

@HovercraftFullOfEels +1。好吧,比喻说,因为我今天的选票已经没有了。 - 要为SSCCE创建图像,请将'ImageIO.read(new File(“C:\\ Users \\ images \\”+ imageFiles [ii]))'更改为'new BufferedImage(w,h,BufferedImage .TYPE_INT_RGB);' – 2013-03-20 13:29:16

回答

1

的问题是,你与Swing组件混合AWT组件(重量级) (轻量级)。我有2点建议:

  • 不要混合重量级和轻量级组件
  • 尝试使用轻量级组件尽可能
  • 在你的代码

因此,通过JCheckbox更换Checkbox,它应该工作正好。

+0

璀璨......这工作得很好..谢谢一吨...... :) – Nemo 2013-03-21 09:05:33