JButton Set X Местоположение не работает

1

У меня есть 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);
Показать ещё 1 комментарий
Теги:
swing
jpanel
layout-manager
jbutton

1 ответ

1
Лучший ответ

Если вы хотите играть с OverlayLayout, вам также необходимо убедиться, что вы используете:

setAlignmentX(Component.CENTER_ALIGNMENT);
setAlignmentY(Component.CENTER_ALIGNMENT);

как для метки, так и для игрока, чтобы синхронизация была синхронизирована.

  • 0
    Что если я хочу сделать кнопку на 75 пикселей ниже?
  • 0
    OverlayLayout не настолько гибок. Я предлагаю вам попробовать использовать другой менеджер макета. Например, вы можете установить менеджер макета вашего JLabel, а затем добавить JButton к метке. Нет необходимости использовать OverlayLayout.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню