LocationRelativeTo (JAVA) не работает

Я часто использую:

setLocationRelativeTo(null);

В моем конструкторе JFrame, чтобы рамка появилась прямо посередине, но теперь это не работает. Это просто помещает JFrame в один угол.

Если у вас есть какое-либо представление о том, что это происходит, или если у вас теперь есть другой способ всегда отображать Jframe посередине на любом компьютере, пожалуйста, скажите мне.

Я сказал это, потому что я мог бы использовать

setLocation(x,y);

и просто поместите координаты, которые поместят Jframe в центр моего экрана, но, например, если мой компьютер имеет разрешение 1920 x 1080, Jframe не будет отображаться в центре на компьютере с разрешением 1280 x 720.

Если я не прав в этом, пожалуйста, поправьте меня, я новичок в Java, поэтому я могу пропустить много вещей, которые не пропустит Билл Гейтс. (У меня сейчас windows не закодирован в Java)

1 ответ

Решение

Для справки вот пример, который работает правильно; Вы можете сравнить это с вашим текущим подходом. Особенно,

MCVE:

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;

/** @see https://stackru.com/a/29643591/230513 */
public class Test {

    private void display() {
        JFrame f = new JFrame("Test");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(new JLabel("Test", JLabel.CENTER));
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(() -> {
                new Test().display();
        });
    }
}
Другие вопросы по тегам