Search code examples
javaswinglook-and-feel

Making custom close and minimize button


I have a decorated JFrame. I need to make close button and minimize button. What should I do?

Here is my code snippet:

public Startup()
{
    setTitle("STARTUP");
    setSize(800,500);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setUndecorated(true);
    setLocationRelativeTo(null);
    setVisible(true);
}

Solution

  • Your approach is very unique and will look quite good. There are many ways to solve your problem. Now, as per your request, you want a CLOSE and a MINIMIZE button. Let us make the following Actions.

    private final Action exitAction = new AbstractAction("Exit")
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                System.exit(0);
            }
        };
    private final Action minimizeAction = new AbstractAction("Minimize")
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                setState(JFrame.ICONIFIED);
            }
        };
    

    Now, let us apply the above actions to JButtons:

    JButton closeButton = new JButton(exitAction);
    JButton miniButton = new JButton(minimizeAction);
    

    There you have it. Now, all you need to do is add your buttons to your JFrame.