我如何知道 JFrame 何时处于最大化状态 Java Swing

How can i know when a JFrame is maximized state Java Swing

嗯,问题很简单。我想知道如何知道 JFrame 在 Java Swing 中何时处于最大化状态。

我曾尝试使用这种功能,但它只是告诉我 JFrame 何时图标化,何时处于正常状态或最大化状态,何时我只想知道何时处于最大化状态等等。

private void formWindowStateChanged(java.awt.event.WindowEvent evt) {                                        
        System.out.println(this.getState());
        if(this.getState()==1){//this means minimized
            System.out.println("Está minimizado");
        } else if(this.getState()==0){//this means maximized/normal state
            System.out.println("Está maximizado");
        }
    }  

有什么帮助吗?谢谢!

要随时获取 JFrame 的状态,可以使用 frame.getExtendedState()

如果我们将其实现到您拥有的侦听器中:

frame.addWindowStateListener(new WindowStateListener() {
    public void windowStateChanged(WindowEvent e) {
        System.out.println(frame.getExtendedState());
        if(frame.getExtendedState() == Frame.MAXIMIZED_BOTH){
            System.out.println("The JFrame is maximised");
        }
    }
});

在 JFrame 的完全最大化状态下,frame.getExtendedState() 函数将 return Frame.MAXIMIZED_BOTH

官方 Javadoc:https://docs.oracle.com/javase/7/docs/api/java/awt/Frame.html#getExtendedState()