Как насчет того, чтобы сначала прочитать Компоновка компонентов в контейнере ?Я злоупотребляю этим высказыванием, но, всегда есть более чем один способ скинуть кошку
Вот лишний пример, в котором используются BoxLayout
и setAlignmentX(...)
в случаях JComponent
-
public final class StackComponentsDemo {
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run() {
createAndShowGUI();
}
});
}
private static void createAndShowGUI(){
final JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.add(new DisabledJButton());
panel.add(new DisabledJButton());
panel.add(new DisabledJButton());
panel.add(new DisabledJButton());
panel.add(new DisabledJButton());
frame.add(panel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private static final class DisabledJButton extends JButton{
public DisabledJButton(){
super("Disabled");
setEnabled(false);
setAlignmentX(Component.CENTER_ALIGNMENT);
}
}
}