Java Swing BoxLayout игнорирует AlignmentX

В приведенном ниже коде, вызывая setAlignmentX с Component.LEFT_ALIGNMENT , я ожидал получить выровненную по левому краю метку поверх ползунок по центру. По какой-то причине метка также центрирована, по-видимому, независимо от того, какое значение передается в setAlignmentX.

Какое значение я должен передать в setAlignmentX, чтобы он выровнялся по левому краю?

package myjava;

import java.awt.Component;
import java.awt.Container;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSlider;

public class LayoutTest {

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                JFrame frame = new JFrame("BoxLayoutDemo");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                // create left aligned label over centered column
                Container contentPane = frame.getContentPane();
                contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
                JLabel label = new JLabel("test");
                label.setAlignmentX(Component.LEFT_ALIGNMENT);
                contentPane.add(label);
                contentPane.add(new JSlider());

                frame.pack();
                frame.setVisible(true);
            }
        });
    }
}
6
задан Mizipzor 10 February 2012 в 13:43
поделиться