Java: центрирование окна


Отцентрировать окно в Java не намного сложнее, чем создать. Ниже приведен код, в котором и делается это.

import javax.swing.*;	
import java.awt.*;

public class Test { 

public static void main (String args[]) {	
	
JFrame jf = new JFrame("Test");
centeringFrame(200, 200, jf);
jf.setVisible(true);
}

private static void centeringFrame (int sizeWidth, int sizeHeight, JFrame frame) {
    Dimension s = Toolkit.getDefaultToolkit().getScreenSize();
    int X = (s.width - sizeWidth) / 2;
    int Y = (s.height - sizeHeight) / 2;
    frame.setBounds(X, Y, sizeWidth, sizeHeight);
    } 
}
По большому счету в этом коде для решения задачи, поставленной в заголовке требуется только один метод - centeringFrame. Он принимает размеры окна (ширину и высоту), а также его название. А на выходе уже сам устанавливает посредине окно.

В первых двух строках происходит подключение библиотек, необходимых для создания окна и определения размеров экрана пользователя. Далее в основном методе в 8-ой строке создаем окно, наследуем его от класса JFrame. Здесь "Test" в JFrame("Test") - это просто заголовок окна; его кстати можно и не делать вообще. В 9-й строке вызываем метод центрирования для созданного окна, а в 10-й - делаем его видимым пользователю.

Просто необходимо сделать одно дополнение. Программа на 100% рабочая. Но, после запуска её и затем закрытия окна по крестику, вы обнаружите, что в процессах остался незавершенный процесс java.exe или javaw.exe - смотря, как вы запускаете программу. Это происходит из-за того, что закрытие окна не вызывает завершения программы. Исправить это можно одной строкой:

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Вставляется данная строка между 9-й и 10-й. После этого внешне ничего не изменится, но после закрытия окна - незавершенный процесс java.exe или javaw.exe благополучно завершится.

Вот так легко и просто создать окно в Java, а также его заставить устанавливаться по центру. Если у вас есть вопросы по программам на java, то вы их можете задать мне, просто отправив вопрос на электронную почту up777up@yandex.ru или скайп up777up2. За скромное вознаграждение в денежном эквиваленте я вам помогу. А также могу написать программу на этом языке, или помочь сделать лабораторную - в общем, все, что необходимо.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, java, центрирование




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Управляем своими дисками с помощью C#
Что такое IPFS?
Урок 17. Оператор typeof JavaScript