0

我正在尝试实现类似于轮播的布局。它需要在第二行使用复选框字段水平添加图像。我在 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);
      } 

不知道出了什么问题..任何帮助都非常感谢..谢谢..

4

1 回答 1

1

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

  • 不要混用重量级和轻量级的组件
  • 尽量使用轻量级组件

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

于 2013-03-20T16:14:03.180 回答