2

我正在开发一个程序,我想创建一个应用程序,我可以在其中使用 for 循环重复 gui 组件。我已经使用卡片布局完成了这项工作,它工作正常,但是当我使用没有卡片布局的容器和 JPanel 时,gui 组件与以前的组件重叠。请给我一个提示或建议我的代码哪里错了。感谢您提前提供建议和时间。

这是我的应用程序的代码:

class form extends JFrame implements ActionListener {

    JTextArea text;
     static int openFrameCount = 0;
    public form(){
           super("Insert Form");
        Container panel=getContentPane();
        JPanel  cc    = new JPanel();
        cc.setLayout(null);
        for(int i=1;i<=2;i++){
        JLabel label1=new JLabel(" Question"+(++openFrameCount));

         label1.setBounds(15, 40, 185, 50);
        cc.add(label1);
        text=new JTextArea();
                text.setLineWrap(true);
        text.setWrapStyleWord(true);
        text.setPreferredSize(new Dimension(750,50));
        text.setBounds(80, 60,750,50);
        cc.add(text);
         JLabel symbol=new JLabel("Selection for Option?");
         symbol.setBounds(100, 120,850,60);
 cc.add(symbol);
   ButtonGroup group = new ButtonGroup();
  JRadioButton rbut=new JRadioButton("Radio Button for option");

        rbut.setBounds(300, 120,300,60);
         JCheckBox cbox=new JCheckBox("Check Box for option");
         cc.add(rbut);
         cbox.setBounds(650, 120,350,60);
         cc.add(cbox);
        group.add(rbut);
         group.add(cbox);

          cc.revalidate();
 validate();


         panel.add(cc);
        }
    }
4

1 回答 1

2

cc您已将面板的布局设置为null,这不是一个好主意。然后,使用setBounds(x, y, width, height)设置添加的组件的位置和大小,它们当然会重叠。

尝试使用任何适合您需要的布局管理器,但不要将其设置为 null,除非您确实有充分的理由这样做。

于 2012-10-02T15:53:34.213 回答