GridBagLayout中的第二行卷出容器(Second row of gridbaglayout

2019-08-17 18:45发布

我想实现类似旋转木马的布局。 它需要有第二行中有一个复选框场中水平添加的图像。 我有一个面板一个JScrollPane内和各个图像被添加到面板标签。 请参阅屏幕截图。

截图

当我滚动面板,包含图像的第一行保持良好的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 ..

Answer 1:

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

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

因此,在你的代码,替代CheckboxJCheckbox ,它应该工作得很好。



文章来源: Second row of gridbaglayout scrolling out of container