У меня есть JWindow, который имеет JLabel и JButton в JPanel. Я пытаюсь установить расположение JButton в центр. По какой-то причине настройка местоположения y работает, но местоположение x не изменяется. Что не так с моим кодом?
JWindow window = new JWindow();
JPanel panel = new JPanel();
panel.setLayout(new OverlayLayout(panel));
JButton singlePlayer = new JButton("Single Player", new ImageIcon(this.getClass().getResource("ButtonSword.png")));
singlePlayer.setPreferredSize(new Dimension(170, 50));
singlePlayer.setLocation(window.getWidth()/2-85, window.getHeight()/2-25);
JLabel label = new JLabel(new ImageIcon(this.getClass().getResource("Splash.png")));
panel.add(singlePlayer);
panel.add(label);
window.getContentPane().add(panel);
window.pack();
window.setLocationRelativeTo(null);
window.setVisible(true);
Если вы хотите играть с OverlayLayout, вам также необходимо убедиться, что вы используете:
setAlignmentX(Component.CENTER_ALIGNMENT);
setAlignmentY(Component.CENTER_ALIGNMENT);
как для метки, так и для игрока, чтобы синхронизация была синхронизирована.