Компонент на JPanel не отображается, когда setLayout (null)

Кто-то может сказать, почему поле со списком не отображается? У меня есть контроллер:

public class TestController extends JPanel {

TestView cgView;

public TestController() 
{

    setLayout(null);

    cgView=new TestView();

    add(cgView);

}
public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
             JFrame fr = new JFrame("testt");
                fr.setSize(1200,1000);
                fr.setResizable(false);

                TestController cgc=new TestController();
                fr.setBackground(Color.white);
                fr.setVisible(true);

                fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                fr.add(cgc);

         }
        });
    }


}

И вид

public class TestView extends JPanel{
    private static final long serialVersionUID = 1L;

    public JComboBox comboBox; 

    public TestView() {

          comboBox= new JComboBox(new String[] {"option1", "option2" });
          comboBox.setBounds(100,500, 100, 20);
          add(comboBox);

    }
}

Потому чтоsetLayout (нуль) в TestController я могуне вижу comboBox. Если я добавлюдобавить (cgView.comboBox) в мой TestContoller (), так что это выглядит так:

public TestController() 
    {

        setLayout(null);

        cgView=new TestView();

        add(cgView);
        add(cgView.comboBox);

    }

Чем я это вижу. Может кто-нибудь сказать почему?

Поэтому мое решение состоит в том, чтобы всегда добавлять компоненты в TestController или передавать TestController в качестве атрибута TestView (поэтому в TestView () я бы добавил их следующим образом: this.parentPanel.add (comboBox). Есть ли другое решение?

Ответы на вопрос(1)

Ваш ответ на вопрос