Изучение различных методов получения размера JFrame в Java

В Java JFrame — это окно, представляющее графический интерфейс пользователя (GUI). Часто бывает необходимо программно получить размер JFrame для различных целей, таких как расчеты макета или операции изменения размера. В этой статье мы рассмотрим несколько методов получения размера JFrame на примерах кода.

Метод 1: использование метода getSize()
Метод getSize()возвращает объект Dimension, представляющий текущий размер JFrame. Вот пример:

import javax.swing.*;
public class JFrameSizeExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setSize(500, 300);
        Dimension size = frame.getSize();
        int width = size.width;
        int height = size.height;
        System.out.println("Width: " + width);
        System.out.println("Height: " + height);
    }
}

Метод 2: использование методов getWidth()и getHeight().
В качестве альтернативы вы можете использовать getWidth()и getHeight()непосредственно в объекте JFrame. Вот пример:

import javax.swing.*;
public class JFrameSizeExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setSize(500, 300);
        int width = frame.getWidth();
        int height = frame.getHeight();
        System.out.println("Width: " + width);
        System.out.println("Height: " + height);
    }
}

Метод 3: использование метода getBounds()
Метод getBounds()возвращает объект Rectangle, представляющий размер и положение из JFrame. Вы можете извлечь из него ширину и высоту. Вот пример:

import javax.swing.*;
public class JFrameSizeExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setSize(500, 300);
        Rectangle bounds = frame.getBounds();
        int width = bounds.width;
        int height = bounds.height;
        System.out.println("Width: " + width);
        System.out.println("Height: " + height);
    }
}

Метод 4: использование интерфейса ComponentListener
Вы можете реализовать интерфейс ComponentListenerи переопределить метод comComponentResized()для получения уведомлений когда размер JFrame изменяется. В рамках этого метода вы можете получить доступ к новому размеру JFrame. Вот пример:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
public class JFrameSizeExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setSize(500, 300);
        frame.addComponentListener(new ComponentListener() {
            @Override
            public void componentResized(ComponentEvent e) {
                Dimension size = frame.getSize();
                int width = size.width;
                int height = size.height;
                System.out.println("Width: " + width);
                System.out.println("Height: " + height);
            }
            @Override
            public void componentMoved(ComponentEvent e) {
                // Not used
            }
            @Override
            public void componentShown(ComponentEvent e) {
                // Not used
            }
            @Override
            public void componentHidden(ComponentEvent e) {
                // Not used
            }
        });
    }
}

В этой статье мы рассмотрели различные методы получения размера JFrame в Java. Используя такие методы, как getSize(), getWidth(), getHeight(), getBounds()или реализуя интерфейс ComponentListener, вы можете программно получить ширину и высоту JFrame. Эти методы позволяют выполнять динамические вычисления и адаптировать макет вашего приложения в зависимости от размера JFrame.