【问题标题】:Put containers within Grid Layout将容器放入网格布局中
【发布时间】:2015-03-24 21:48:20
【问题描述】:

我对 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);

我知道这是错误的,但我希望有人可以帮助我。谢谢!

【问题讨论】:

    标签: java user-interface gridlayoutmanager


    【解决方案1】:

    您的所有面板都是相同的,它们引用 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));
    

    【讨论】:

      猜你喜欢
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 2018-07-20
      • 2022-01-18
      相关资源
      最近更新 更多