Вопрос по jframe, java, windowlistener, swing, awt – Как обнаружить окно JFrame минимизировать и максимизировать события?

8

Есть ли способ, чтобы прослушиватель событий объекта JFrame обнаруживал, когда пользователь нажимает на кнопку «Развернуть» или «Развернуть»?

Я использую объект JFrame следующим образом:

JFrame frame = new JFrame("Frame");

У вас есть конкретная цель? trashgod
Да, мне нужно знать, когда размер окна изменяется, чтобы я мог перерисовать компоненты внутри рамки. Markel Mairs
Методыvalidate() and repaint () `будет вызываться автоматически при изменении размера фрейма, но вам может потребоваться обновить другие структуры данных; смотрите такжеAnimationTest. trashgod

Ваш Ответ

3   ответа
12

Ты можешь использоватьWindowStateListener. Как написать оконные слушатели Учебник демонстрирует, как создавать связанные с окном обработчики событий.

4

Да, вы можете сделать это с помощью & quot; WindowListener & quot; методы, а именно windowIconified (WindowEvent e) с помощью windowDeiconified (WindowEvent e). Для более подробной информации посетитеэтот

4
  1. Create a frame and add a listener:

JFrame frame = new JFrame();
frame.addWindowStateListener(new WindowStateListener() {
   public void windowStateChanged(WindowEvent arg0) {
      frame__windowStateChanged(arg0);
   }
});

  1. Implement the listener:

public void frame__windowStateChanged(WindowEvent e){
   // minimized
   if ((e.getNewState() & Frame.ICONIFIED) == Frame.ICONIFIED){
      _print("minimized");
   }
   // maximized
   else if ((e.getNewState() & Frame.MAXIMIZED_BOTH) == Frame.MAXIMIZED_BOTH){
      _print("maximized");
   }
}

Похожие вопросы