如何将jPanel的最后一个组件放在右边缘,即使面板有一个flowLayout Left

时间:2015-10-21 09:43:24

标签: java swing layout-manager flowlayout

我的代码中有

带有LEFT FlowLayout的jPanel。 它包含各种组件。见img:

current tool output

我想要实施的内容: 我试图将最后一个组件粘贴在其面板容器的右边缘。见img:

desidered tool output

我试过了:

在我的最后一个组件之前添加一个Box.createHorizo​​ntalGlue,但它没有按预期工作。

守则:

代码是专门为问题创建的,并且反映了原始代码逻辑:

public class TheMotherPuckerGlue {
    public static void main(String [] a) {
        final JFrame frame = new JFrame();
        frame.setSize(500, 90);
        frame.setTitle("myCode");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new BorderLayout());

        JPanel motherPucker = new JPanel(new FlowLayout(FlowLayout.LEFT));
        JPanel panel1 = new JPanel();
        JPanel panel2 = new JPanel();
        JPanel panel3 = new JPanel();

        panel1.setBackground(Color.green);
        panel2.setBackground(Color.yellow);
        panel3.setBackground(Color.red);

        panel1.setPreferredSize(new Dimension(100,40));
        panel2.setPreferredSize(new Dimension(100,40));
        panel3.setPreferredSize(new Dimension(100,40));

        motherPucker.add(panel1);
        motherPucker.add(panel2);
//        motherPucker.add(Box.createHorizontalGlue());
        motherPucker.add(panel3);
        motherPucker.setBackground(Color.white);

        frame.add(motherPucker,BorderLayout.CENTER);

        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                frame.setVisible(true);
            }
        });
   }
}

感谢您的任何建议,请您离开! :d

0 个答案:

没有答案