Как развернуть фрейм на ВЕСЬ экран? - Java
Формулировка задачи:
Мне нужна команда в слушатель, которая при максимизации фрейма делает его полноэкранным, setUndecorated(true);
Однако, мне компилятор дает понить при выполнении этого слушателя, что:
Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: The frame is displayable.
at java.awt.Frame.setUndecorated(Unknown Source)
at gfm.GraphicFramesModule$7.windowStateChanged(GraphicFramesModule.java:386)
at java.awt.Window.processWindowStateEvent(Unknown Source)
at java.awt.Window.processEvent(Unknown Source)
.....
Где 386 строка - как раз команда MineFrame.this.setUndecorated(true) в слушателе на максимизацию фрейма.
Так вот, каким боком мне мешает то, что "фрейм может быть отображен"?! И даже сетВизибл фолс и тру вокруг команды толку не дали.
Решение задачи: «Как развернуть фрейм на ВЕСЬ экран?»
textual
Листинг программы
import java.awt.event.*;
import javax.swing.*;
public class GraphicFramesModule extends JFrame {
public GraphicFramesModule() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addWindowStateListener(new WindowStateListener() {
@Override
public void windowStateChanged(WindowEvent st) {
if (st.getNewState() == GraphicFramesModule.MAXIMIZED_BOTH) {
dispose();
setUndecorated(true);
showFrame();
} else {
dispose();
setUndecorated(false);
showFrame();
}
}
});
showFrame();
}
private void showFrame() {
pack();
setVisible(true);
}
public static void main(String[] args) {
new GraphicFramesModule();
}
}