2013-02-17 6 views
2

У меня возникли проблемы с получением пользовательского JFrame, чтобы максимизировать себя правильно после минимизации. Вот процесс, который я прошел: я открываю фрейм, максимизирую его (код ниже), сворачиваю его и снова открываю программу из док-станции. Однако, когда я снова открываю фрейм, он возвращается к исходному размеру, а не к максимальному размеру, в котором он был, прежде чем я сведю его к минимуму.JFrame не восстанавливается после Minimization

Эти методы вызываются при нажатии кнопок максимизации и минимизации. Это пользовательский JFrame, и он не декорирован, поэтому я сделал кнопки для этих действий.

private void maximizeAction(){ 
    setExtendedState(getExtendedState() | Frame.MAXIMIZED_BOTH); 
}//================================= 

private void minimizeAction(){ 
    setExtendedState(Frame.ICONIFIED); 
}//================================= 

Я попытался добавить setPreferredSize(new Dimension(screenWidth, screenHeight)); строку в функцию разворачивания, но это не изменило поведение кадра, когда я вновь открыл его.

Других возможные факторы, способствующие могут быть:

  • Рамы имеет прозрачность и уникальную форму кадра, так что я переопределен команда paint(). Однако я использую унаследованные переменные, поэтому они должны быть точными. Это похоже на то, что кадр забыл, насколько он был большой.

ответ

2

Необходимо сохранить предыдущее расширенное состояние.

private void minimizeAction(){ 
    setExtendedState(getExtendedState() | Frame.ICONIFIED); 
}//================================= 
+0

Этот код вызывает у меня ошибку. Я максимизирую фрейм, затем нажмите кнопку «Свернуть» (после реализации кода), и я получаю следующую ошибку: «Исключение в потоке» AWT-EventQueue-0 »java.lang.RuntimeException: Неизвестное состояние окна: – AndrewCox

 Смежные вопросы

  • Нет связанных вопросов^_^