第二行gridbaglayout滚出容器

时间:2013-03-20 13:20:52

标签: java swing jpanel jscrollpane gridbaglayout

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

screenshot
enter image description here

当我滚动窗格时,包含图像的第一行在面板中保持良好状态。但是如果您注意到第二行复选框,它会滚出面板。这是代码......

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);
      } 

不确定有什么问题。非常感谢任何帮助。谢谢..

1 个答案:

答案 0 :(得分:1)

问题在于您将AWT组件(重量级)与Swing组件(轻量级)混合使用。我有2条建议:

  • 不要混用重量级和轻量级组件
  • 尝试尽可能使用轻量级组件

因此,在您的代码中,将Checkbox替换为JCheckbox,它应该可以正常工作。