Как развернуть фрейм на ВЕСЬ экран? - 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();
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5