我对java GUI的编程比较陌生,我想使用网格布局并在该网格布局中放置一个容器。我不确定该怎么做但是这是我尝试过的,但它不起作用:
Container pane = getContentPane();
pane.setLayout(new GridLayout(3, 1));
Container inp = getContentPane();
inp.setLayout(new GridLayout(2, 4));
Container out = getContentPane();
out.setLayout(new GridLayout(1, 1));
Container bottom = getContentPane();
bottom.setLayout(new GridLayout(1, 2));
pane.add(inp);
pane.add(out);
pane.add(bottom);
inp.add(cn1);
inp.add(cnum1);
inp.add(cn2);
inp.add(cnum2);
inp.add(add);
inp.add(sub);
inp.add(mul);
inp.add(div);
out.add(ans);
bottom.add(clear);
bottom.add(exit);
pane.add(inp);
pane.add(out);
pane.add(bottom);
我知道这是错的,但我希望有人可以帮助我。谢谢!
答案 0 :(得分:0)
所有面板都是一样的,它们引用了contentPane。组件只能驻留在单个容器中,因此每次将任何yr面板添加到另一个容器时,它们都会首先从父容器中删除。
话虽如此,您应该有一个例外,说明无法将容器添加到自身。
相反,你需要做更像......的事情。
Container pane = getContentPane();
pane.setLayout(new GridLayout(3, 1));
Container inp = new JPanel(new GridLayout(2, 4));
Container out = new JPanel(new GridLayout(1, 1));
Container bottom = new JPanel(new GridLayout(1, 2));