本帖最后由 bmssesdn 于 2010-11-15 09:09:52 编辑

解决方案 »

  1.   

    放在同一个JPanel中就可以...我这里看不到图
      

  2.   

    图片看不见
    可以把panel的布局改成FlowLayout
      

  3.   

    每个图片和对应的复选框放到一个单独的jpanel里。jpanel1.add(jlabel1);
    jpanel1.add(jcheckbox1);jpanel2.add(jlablel2);
    jpanel2.add(jcheckbox2);...
      

  4.   

    A面板用FlowLayout,然后图片和框直接放在A面板上就可以了
    B面板用BoxLayout,将每个A面板放在B面板上
      

  5.   

    这样改import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.GridLayout;import javax.swing.JButton;
    import javax.swing.JCheckBox;
    import javax.swing.JDialog;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;public class TwoL {    public TwoL(){
            final JDialog dlg=new JDialog((JFrame)null,true);
            JPanel imgPanel=new JPanel(new BorderLayout());
    //        JLabel lb=new JLabel("图片位置");
            // lb.setIcon(icon); //这里设图标
    //        imgPanel.add(lb,BorderLayout.CENTER);
            JPanel cbPane=new JPanel(new GridLayout(0,2));
            for(int i=0;i < 10;i++){
             JLabel lb=new JLabel("图片位置");
                JCheckBox cb=new JCheckBox("选项" + i);
                cbPane.add(lb);
                cbPane.add(cb);
            }
            JScrollPane sp=new JScrollPane(cbPane);
            sp.setPreferredSize(new Dimension(100,100));
            imgPanel.add(sp,BorderLayout.CENTER);        JPanel butPanel=new JPanel();
            JButton ok=new JButton("确定");
            /*ok.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    //dlg.setVisible(false);
                    //这里处理OK操作
                }
            });*/
            
            JButton cancel=new JButton("取消");
            /*cancel.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    dlg.setVisible(false);
                }
            });*/
            butPanel.add(ok);
            butPanel.add(cancel);
            dlg.add(imgPanel);
            dlg.add(butPanel,BorderLayout.SOUTH);
            dlg.setSize(250,250);
            dlg.setVisible(true);    }
        
        public static void main(String[] args) {
            new TwoL();
        }
    }