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

Перевод на русский © Сергей Миссан, 2000
Оригинал статьи опубликован на сайте Javable.com

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);
}
}

Об авторе

Random Walk Computing это наибольшая консалтинговая фирма в Нью Йорке, специализирующаяся на Java/CORBA решениях для предприятий. Известные своим выдающимся знанием Java, консультанты Random Walk публикуются и выступают на самых престижных форумах мира. Для связи с Random Walk используйте javaqa@javaworld.com.

Reprinted with permission from the March 2000 edition of JavaWorld magazine.
Copyright © ITworld.com, Inc., an IDG Communications company.
View the original article at: http://www.javaworld.com/javaworld/javaqa/1999-10/03-qa-window.html

Назад | Содержание | Вперед