Ответ 1
Я всегда делал это так:
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);
где this
участвует в JFrame.
Во время работы с Java мне трудно разместить основное окно в центре экрана при запуске приложения.
Можно ли мне это сделать? Он не должен быть вертикально центрирован, для меня важнее горизонтальное выравнивание. Но вертикальное выравнивание также приветствуется.
Я всегда делал это так:
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);
где this
участвует в JFrame.
Использовать setLocationRelativeTo(null)
Этот метод имеет особый эффект, когда вы передаете его null
. Согласно Джавадоку:
Если компонент равен NULL, или GraphicsConfiguration, связанный с этим компонентом, имеет значение NULL, окно помещается в центр экрана.
Это нужно сделать после установки размера или вызова pack()
, но перед его установкой, как это:
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
Вы можете вызвать JFrame.setLocationRelativeTo(null)
чтобы JFrame.setLocationRelativeTo(null)
окно. Убедитесь, что поставили это перед JFrame.setVisible(true)
Просто нажмите на форму и перейдите в свойства JFrame, затем вставьте вкладку "Код" и отметьте Generate Center
.
Проще, чем это...
setSize(220, 400);
setLocationRelativeTo(null);
или если вы используете фрейм, установите рамку на
frame.setSize(220, 400);
frame.setLocationRelativeTo(null);
Для уточнения из документации:
Если компонент равен NULL, или GraphicsConfiguration, связанный с этим компонентом, имеет значение NULL, окно помещается в центр экрана.
Я использую среду IDE NetBeans 7.2.1 в качестве среды разработки для разработчиков, и у вас есть возможность настроить свойства JForm.
в свойствах JForm перейдите на вкладку "Код" и настройте "Generate Center". вам нужно сначала установить политику размера формы для "Создать код изменения размера".
Вы получите размер, после того как вы добавите это:
frame.setLocationRelativeTo(null);
Я использую среду IDE NetBeans 7.3, и это то, как я делаю централизацию своего JFrame Убедитесь, что вы нажмете на панель JFrame и перейдите в панель свойств JFrame, щелкните по строке кода и установите флажок "Создать центр".
Если вы используете NetBeans, просто нажмите на рамку в представлении проекта, а затем на вкладке кода на ее свойства. Затем установите флажок "Создать центр". Это выполнит свою работу.
Вы можете использовать этот метод, который позволяет JFrame быть центрированным и полноэкранным одновременно.
yourframe.setExtendedState(JFrame.MAXIMIZED_BOTH);
Если вы явно setPreferredSize(new Dimension(X, Y));
, то лучше использовать:
setLocation(dim.width/2-this.getPreferredSize().width/2, dim.height/2-this.getPreferredSize().height/2);
В графическом интерфейсе Net Beans - перейдите к свойствам jframe (щелкните правой кнопкой мыши на jFrame в Navigator), в разделе " код" выберите свойство политики размера формы " Создать код изменения размера". В том же окне снимите флажок "Создать позицию" и отметьте "Создать размер и центр".
Наслаждайтесь программированием. Рамана
Для Java Swing:
Перейдите в "Навигатор" → "JFrame" → "Свойства" → "Код" → проверьте Generate Center
Это сработало для меня:
Toolkit toolkit = getToolkit();
Размер размера = toolkit.getScreenSize();
setLocation (size.width/2 - getWidth()/2, size.height/2 - getHeight()/2);