Java Q&A


         

Минимизирование окна


Перевод на русский © , 2000

Java Q&A

Существует ли надежный способ для задания минимального размера окна? Я хочу, чтобы мои пользователи могли увеличить окно приложения, но при этом не могли сделать его меньше определенного минимального размера. Я просмотрел документацию API для иерархии JFrame и не нашел ничего подходящего.

Java не содержит отдельного метода для задания минимального размера окна. Вы, однако, можете заставить окно придерживатся определенного минимального размера используя обработчики событий (event listeners). Если получено событие изменения размера окна, проверьте размер, и, если он меньше необходимого, восстановите его.

Вот пример кода:

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

public class MinSizeFrame extends JFrame implements ComponentListener {

static final int WIDTH = 400; static final int HEIGHT = 400;

static final int MIN_WIDTH = 300; static final int MIN_HEIGHT = 300;

public MinSizeFrame() { setSize(WIDTH, HEIGHT); addComponentListener(this); }

public void componentResized (ComponentEvent e) {

int width = getWidth(); int height = getHeight();

//мы проверяем ширину и высоту

boolean resize = false;

if (width < MIN_WIDTH) { resize = true; width = MIN_WIDTH; } if (height < MIN_HEIGHT) { resize = true; height = MIN_HEIGHT; } if (resize) { setSize(width, height); } }

public void componentMoved(ComponentEvent e){ }

public void componentShown(ComponentEvent e){ }

public void componentHidden(ComponentEvent e){ }

public static void main(String args[]) { MinSizeFrame f = new MinSizeFrame(); f.setVisible(true); } }



Содержание