将容器放在网格布局中
Put containers within Grid Layout
我对编程 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);
我知道这是错误的,但我希望有人能帮助我。谢谢!
您的所有面板都是一样的,它们引用 contentPane。一个组件只能驻留在一个容器中,因此每次您将任何面板添加到另一个容器时,它们首先会从父容器中删除。
话虽如此,您应该有一个例外说明容器不能添加到自身。
相反,您需要做一些更像...
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));
我对编程 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);
我知道这是错误的,但我希望有人能帮助我。谢谢!
您的所有面板都是一样的,它们引用 contentPane。一个组件只能驻留在一个容器中,因此每次您将任何面板添加到另一个容器时,它们首先会从父容器中删除。
话虽如此,您应该有一个例外说明容器不能添加到自身。
相反,您需要做一些更像...
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));