第二行gridbaglayout滚出容器

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

截图
在此处输入图像描述

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

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

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

问题是你将AWT组件(重量级)与Swing组件(轻量级)混合在一起。 我有2条建议:

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

所以在你的代码中,用JCheckbox替换Checkbox ,它应该可以正常工作。