【问题标题】:swing flow layout break element摆流布局打断元素
【发布时间】:2011-06-05 02:58:27
【问题描述】:

我有一个使用流式布局的面板。

如何打破流布局?就像 html 中的 <br/>。一些特殊的中断元素或其他技巧来指示指定的元素和所有后续元素都必须转到下一行。

【问题讨论】:

    标签: java swing


    【解决方案1】:

    在这种情况下,我会将两个带有 flowlayout 的容器放在一个 BoxLayout 中。嵌套布局相当便宜。

    【讨论】:

    • 呵呵,嵌套很好,但是不够,当容器的高度很大时会产生不必要的间隙。
    • 如果编码正确,就没有理由出现空白。
    • 如果您在使用,请发布示例。
    【解决方案2】:

    Wrap Layout 可能是您的解决方案。当一行满时,它会自动将组件移动到下一行。

    【讨论】:

      【解决方案3】:

      您想手动将组件分成多行吗?所以你知道你想要换行符在哪里。

      在这种情况下,我会使用 3 个面板:

      • 1 个面板包含其他 2 个面板,其 GridLayout 具有 1 列
      • GridLayout 内的 2 个面板,每个面板都有一个 FlowLayout

      示例代码:

          frame = new JFrame();
          frame.setBounds(100, 100, 450, 300);
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          {
              panel = new JPanel();
              frame.getContentPane().add(panel, BorderLayout.NORTH);
              panel.setLayout(new GridLayout(0, 1, 0, 0));
              {
                  panel_1 = new JPanel();
                  panel.add(panel_1);
                  {
                      lblPanelFlowlayout = new JLabel("Panel 2: FlowLayout");
                      panel_1.add(lblPanelFlowlayout);
                  }
              }
              {
                  panel_2 = new JPanel();
                  panel.add(panel_2);
                  {
                      lblPanel = new JLabel("Panel 3: FlowLayout");
                      panel_2.add(lblPanel);
                  }
              }
          }
      

      您可以根据需要使用 FlowLayout 添加任意数量的新面板。每次执行 BR 时,您现在都将下一个面板设置为活动状态(可能动态创建)。

      【讨论】:

        【解决方案4】:

        我认为这在流式布局中是不可能的,您可能想尝试其他布局,例如 GridLayoutGridBagLayout

        【讨论】:

          【解决方案5】:

          我会制作多个没有插入的占位符面板,然后使用一些代码来计算何时需要将组件移动到下一个面板,因为它低于最小宽度阈值。这很丑陋,但它应该可以工作。您需要在 EDT 内手动完成所有删除和添加操作。

          【讨论】:

            猜你喜欢
            • 2017-02-22
            • 1970-01-01
            • 1970-01-01
            • 2017-10-06
            • 1970-01-01
            • 1970-01-01
            • 2012-05-30
            • 1970-01-01
            • 2018-12-08
            相关资源
            最近更新 更多