Следующее не работает для JDK 1.7.0.07:
frame.setLocationRelativeTo(null);
Он помещает верхний левый угол в центр - не то же самое, что центрирование окна. Другой не работает, включая frame.getSize () и dimension.getSize ():
Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
int x = (int) ((dimension.getWidth() - frame.getWidth()) / 2);
int y = (int) ((dimension.getHeight() - frame.getHeight()) / 2);
frame.setLocation(x, y);
Метод getSize () унаследован от класса Component, и поэтому frame.getSize также возвращает размер окна. Таким образом, вычитая половину вертикальных и горизонтальных размеров из вертикальных и горизонтальных размеров, чтобы найти координаты x, y места для размещения верхнего левого угла, вы получите местоположение центральной точки, которая также заканчивается центрированием окна. Тем не менее, первая строка приведенного выше кода полезна, «Размер ...». Просто сделайте это, чтобы центрировать это:
Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
JLabel emptyLabel = new JLabel("");
emptyLabel.setPreferredSize(new Dimension( (int)dimension.getWidth() / 2, (int)dimension.getHeight()/2 ));
frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);
frame.setLocation((int)dimension.getWidth()/4, (int)dimension.getHeight()/4);
JLabel устанавливает размер экрана. Он находится в FrameDemo.java, доступном в руководствах по Java на сайте Oracle / Sun. Я установил его на половину высоты / ширины экрана. Затем я центрировал его, поместив верхний левый угол на 1/4 размера экрана слева и на 1/4 размера экрана сверху. Вы можете использовать аналогичную концепцию.