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 に答える