Использование JFrame для создания окна приложения

Каждое десктопное приложение должно иметь окно. В этом окне будут располагаться все необходимые компоненты графического интерфейса пользователя, посредством которых пользователь будет работать с приложением. Попробуем создать окно нашего приложения и разместить там что-нибудь. Пока что наше приложение будет простым и незамысловатым. Для создания окна приложения в Swing используется класс JFrame. Он содержит ряд методов и свойств, которые позволяют настроить его должным образом. Рассмотрим пример.

import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class TestFrame {
     
public static void createGUI() {
          JFrame.setDefaultLookAndFeelDecorated(true);
          JFrame frame = new JFrame(«Test frame»);
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          
          JLabel label = new JLabel(«Test label»);
          frame.getContentPane().add(label);
          
          frame.setPreferredSize(new Dimension(200, 100));
          
          frame.pack();
          frame.setVisible(true);          
     }
     
     public static void main(String[] args) {
          javax.swing.SwingUtilities.invokeLater(new Runnable() {
               public void run() {
                    createGUI();
               }
          });
     }
}

simleswing

Это самое простое Swing приложение. Данный код создаст приложение, внешний вид которого представлен на рисунке. Рассмотрим код более детально. Каждое приложение должно содержать статический метод main – точка входа приложения, именно с него начинается выполнение.

Далее выполняется создание графического интерфейса пользователя. Создание графического интерфейса пользователя непременно должно происходить в Event dispatch потоке. Для этого метод вызывается внутри определенного вида конструкции SwingUtilities. Перейдем к непосредственному созданию и размещению компонентов.

Самой первой строкой метода createGUI мы говорим системе, чтобы окно полностью рисовалось Swing. Если закомментировать этот код, то окно будет определяться самой операционной системой – Swing доверит рисовать окно ей. Далее создаем само окно и указываем текст, который будет располагаться в его заголовке. С помощью метода setDefaultCloseOperation мы говорим системе, как отреагировать на закрытие окна. Сейчас нам необходимо, чтобы при закрытии окна закрывалось и приложение. Для этого мы передаем параметр JFrame.EXIT_ON_CLOSE. Но когда-нибудь необходимо будет не закрывать приложение, а закрыть только окно и оставить выполняться его в фоновом режиме, тогда мы будем передавать этому методу другой параметр.

Далее создаем текстовый лейбл с помощью JLabel, указывая при этом какой текст мы хотим в нем видеть, и размещаем на форме. При размещении компонента в окне тоже есть одна хитрость. У объекта JFrame есть специальная панель content pane, на которой должны размещаться все остальные дочерние компоненты. С помощью вызова getContentPane мы получаем эту панель и добавляем лейбл уже на нее. Далее устанавливаем размер окна и показываем его пользователю.

Иногда история создания интернета интересна к прочтению. Можно много узнать о том, как создавали интернет.

9 Responses to Использование JFrame для создания окна приложения

  1. Иван:

    Спасибо, всё понятно.

  2. Дмитрий:

    Вери вери спасибо!

  3. А как создать незименяемое в размерах окнов?:)

  4. Надежда:

    Очень понравилось! спасибо!

  5. tyrgor85:

    А можно ли поконкретнее объяснить работу метода main() в данном примере?

  6. Konstantin:

    2 tyrgor85:
    Сам только начинаю учить яву…

    С помощью данных строк
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
    public void run() {

    создаем ОТДЕЛЬНЫЙ ПОТОК(отдельный процесс)

    public void run() {
    createGUI();
    и запускаем с нем наше окно.

  7. У вас вот тут ошибки в коде
    JFrame frame = new JFrame(“Test frame”);
    JLabel label = new JLabel(“Test label”);
    Надо вот так («Test …») а у вас так (“Test …”) из за этого программа работать не будет

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: