Как установить JFrame в центр, независимо от разрешения монитора?

Во время работы с Java мне трудно разместить основное окно в центре экрана при запуске приложения.

Можно ли мне это сделать? Он не должен быть вертикально центрирован, для меня важнее горизонтальное выравнивание. Но вертикальное выравнивание также приветствуется.

Ответ 1

Я всегда делал это так:

Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);

где this участвует в JFrame.

Ответ 2

Использовать setLocationRelativeTo(null)

Этот метод имеет особый эффект, когда вы передаете его null. Согласно Джавадоку:

Если компонент равен NULL, или GraphicsConfiguration, связанный с этим компонентом, имеет значение NULL, окно помещается в центр экрана.

Это нужно сделать после установки размера или вызова pack(), но перед его установкой, как это:

frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);

Ответ 4

Просто нажмите на форму и перейдите в свойства JFrame, затем вставьте вкладку "Код" и отметьте Generate Center.

введите описание изображения здесь

Ответ 5

Проще, чем это...

setSize(220, 400);
setLocationRelativeTo(null);  

или если вы используете фрейм, установите рамку на

frame.setSize(220, 400);
frame.setLocationRelativeTo(null);  

Для уточнения из документации:

Если компонент равен NULL, или GraphicsConfiguration, связанный с этим компонентом, имеет значение NULL, окно помещается в центр экрана.

Ответ 6

Я использую среду IDE NetBeans 7.2.1 в качестве среды разработки для разработчиков, и у вас есть возможность настроить свойства JForm.

в свойствах JForm перейдите на вкладку "Код" и настройте "Generate Center". вам нужно сначала установить политику размера формы для "Создать код изменения размера".

Ответ 7

Вы получите размер, после того как вы добавите это:

frame.setLocationRelativeTo(null);

Ответ 8

Я использую среду IDE NetBeans 7.3, и это то, как я делаю централизацию своего JFrame Убедитесь, что вы нажмете на панель JFrame и перейдите в панель свойств JFrame, щелкните по строке кода и установите флажок "Создать центр".

Ответ 9

Если вы используете NetBeans, просто нажмите на рамку в представлении проекта, а затем на вкладке кода на ее свойства. Затем установите флажок "Создать центр". Это выполнит свою работу.

Ответ 10

Вы можете использовать этот метод, который позволяет JFrame быть центрированным и полноэкранным одновременно.

yourframe.setExtendedState(JFrame.MAXIMIZED_BOTH);

Ответ 11

Если вы явно setPreferredSize(new Dimension(X, Y));, то лучше использовать:

setLocation(dim.width/2-this.getPreferredSize().width/2, dim.height/2-this.getPreferredSize().height/2);

Ответ 12

В графическом интерфейсе Net Beans - перейдите к свойствам jframe (щелкните правой кнопкой мыши на jFrame в Navigator), в разделе " код" выберите свойство политики размера формы " Создать код изменения размера". В том же окне снимите флажок "Создать позицию" и отметьте "Создать размер и центр".

Наслаждайтесь программированием. Рамана

Ответ 13

Для Java Swing:

Перейдите в "Навигатор" → "JFrame" → "Свойства" → "Код" → проверьте Generate Center

Ответ 14

Это сработало для меня:

Toolkit toolkit = getToolkit();

Размер размера = toolkit.getScreenSize();

setLocation (size.width/2 - getWidth()/2, size.height/2 - getHeight()/2);