A JFrame class is a subclass of Frame class and the components added to a frame are referred to as its contents, these are managed by the contentPane. A JFrame contains a window with title, border, (optional) menu bar and user-specific components. By default, we can minimize a JFrame by clicking on minimize button and maximize a JFrame by clicking on maximize button at the top-right position of the screen. We can also do programmatically by using setState(JFrame.ICONIFIED) to minimize a JFrame and setState(JFrame.MAXIMIZED_BOTH) to maximize a JFrame.
Example
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JFrameIconifiedTest extends JFrame implements ActionListener { private JButton iconifyButton, maximizeButton; public JFrameIconifiedTest() { setTitle("JFrameIconified Test"); iconifyButton = new JButton("JFrame Iconified"); add(iconifyButton, BorderLayout.NORTH); iconifyButton.addActionListener(this); maximizeButton = new JButton("JFrame Maximized"); add(maximizeButton, BorderLayout.SOUTH); maximizeButton.addActionListener(this); setSize(400, 275); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } public void actionPerformed(ActionEvent ae) { if(ae.getSource().equals(iconifyButton)) { setState(JFrame.ICONIFIED); // To minimize a frame } else if(ae.getSource().equals(maximizeButton)) { setExtendedState(JFrame.MAXIMIZED_BOTH); // To maximize a frame } } public static void main(String args[]) { new JFrameIconifiedTest(); } }
Output
In the above program, if we click on "JFrame Iconified" button, the frame is minimized and click on "JFrame Maximized" button, the frame is maximized.