У меня возникли проблемы с получением пользовательского JFrame, чтобы максимизировать себя правильно после минимизации. Вот процесс, который я прошел: я открываю фрейм, максимизирую его (код ниже), сворачиваю его и снова открываю программу из док-станции. Однако, когда я снова открываю фрейм, он возвращается к исходному размеру, а не к максимальному размеру, в котором он был, прежде чем я сведю его к минимуму.JFrame не восстанавливается после Minimization
Эти методы вызываются при нажатии кнопок максимизации и минимизации. Это пользовательский JFrame, и он не декорирован, поэтому я сделал кнопки для этих действий.
private void maximizeAction(){
setExtendedState(getExtendedState() | Frame.MAXIMIZED_BOTH);
}//=================================
private void minimizeAction(){
setExtendedState(Frame.ICONIFIED);
}//=================================
Я попытался добавить setPreferredSize(new Dimension(screenWidth, screenHeight));
строку в функцию разворачивания, но это не изменило поведение кадра, когда я вновь открыл его.
Других возможные факторы, способствующие могут быть:
- Рамы имеет прозрачность и уникальную форму кадра, так что я переопределен команда
paint()
. Однако я использую унаследованные переменные, поэтому они должны быть точными. Это похоже на то, что кадр забыл, насколько он был большой.
Этот код вызывает у меня ошибку. Я максимизирую фрейм, затем нажмите кнопку «Свернуть» (после реализации кода), и я получаю следующую ошибку: «Исключение в потоке» AWT-EventQueue-0 »java.lang.RuntimeException: Неизвестное состояние окна: – AndrewCox