在下面的代码中,通过使用
我必须传递什么值才能使它左对齐?
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);
}
});
}
}
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
,然后在子组件上使用.setAlignmentX(int);
来轻松展示。对于0,它们被左对齐,值越高,这些组件就向右移动得越远。所以你可以对BoxLayout
有不同的对齐方式 - 不管这是否有意。 - KoenigsbergComponent.LEFT_ALIGNMENT
的定义来设置BoxLayout
的对齐方式。 - Koenigsberg