【问题标题】:FlowLayout add under previous componentsFlowLayout 在之前的组件下添加
【发布时间】:2016-01-10 19:32:19
【问题描述】:

我正在尝试将一些组件添加到 JPanel 中的 flowLayout

JPanel panelPrincipal = new JPanel();
principale.getContentPane().add(panelPrincipal, BorderLayout.CENTER);
panelPrincipal.setLayout(new BorderLayout(0, 0));

JPanel panelDynamique = new JPanel();
JScrollPane jScrollPane = new JScrollPane(panelDynamique);
panelPrincipal.add(jScrollPane, BorderLayout.CENTER);

if(this.getNbAppFor(champs.get(6)) > 0) {
    JLabel lblMAJ = new JLabel(champs.get(6));
    panelDynamique.add(lblMAJ);
    panelDynamique.add(new JSeparator());

    JPanel panelMAJ = new JPanel();
    panelMAJ.setLayout(new GridLayout(this.getNbAppFor(champs.get(6))/2, 2));
    panelDynamique.add(panelMAJ);
}

if(this.getNbAppFor(champs.get(7)) > 0) {
    JLabel lblDispo = new JLabel(champs.get(7));
    panelDynamique.add(new JSeparator());

    JPanel panelDispo = new JPanel();
    panelDispo.setLayout(new GridLayout(this.getNbAppFor(champs.get(7))/2, 2));
    panelDynamique.add(panelDispo);
}

这是核心构建,但看起来不像我预期的那样。

我做了一个说明我正在尝试做的事情:

如何在前一个组件下的下一个“行”中将组件添加到FlowLayout?我怎样才能让我的分隔符填满我的Container 的宽度?

【问题讨论】:

    标签: java swing jpanel flowlayout jseparator


    【解决方案1】:

    根据你的绘图,但没有使用FlowLayout。

    package testp;
    
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JSeparator;
    
    public class LayTest {
    
        public static void main(String[] args) {
    
            JPanel p = new JPanel();
            p.setLayout(new GridBagLayout());
    
            GridBagConstraints c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 0;
            c.anchor = GridBagConstraints.WEST;
            c.weightx = 1;
            p.add(new JLabel("Mide a jour"), c);
    
            c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 1;
            c.fill = GridBagConstraints.HORIZONTAL;
            p.add(new JSeparator(), c);
    
            c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 2;
            c.weighty = 1;
            c.fill = GridBagConstraints.HORIZONTAL;
            p.add(new JPanel(), c);
    
            c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 3;
            c.fill = GridBagConstraints.HORIZONTAL;
            p.add(new JSeparator(), c);
    
            c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 4;
            c.anchor = GridBagConstraints.WEST;
            p.add(new JLabel("Disponsible"), c);
    
            c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 5;
            c.fill = GridBagConstraints.HORIZONTAL;
            p.add(new JSeparator(), c);
    
            c = new GridBagConstraints();
            c.gridx = 0;
            c.gridy = 6;
            c.weighty = 1;
            p.add(new JPanel(), c);
    
    
            JFrame f = new JFrame();
            f.setSize(300, 400);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setContentPane(p);
            f.setVisible(true);
    
        }
    
    }
    

    你可能会发现有用 oracle

    【讨论】:

    • 嗨!你的答案似乎像我想要的那样工作!我将尝试使其适用于我的代码。非常感谢!
    • 我的代码有另一个问题,我在这里发布了一个新问题:stackoverflow.com/questions/34731570/… 如果您有时间,您的帮助将不胜感激。无论如何感谢您对我的第一个问题的帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    相关资源
    最近更新 更多