В 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.