2013-03-20 76 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