Java Swing How to - Set minimum sizes for JFrame








Question

We would like to know how to set minimum sizes for JFrame.

Answer

import java.awt.Dimension;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
// w ww.ja  v a2  s .  c  om
import javax.swing.JFrame;

public class Main {
  public static void main(String[] args) {
    final JFrame frame = new JFrame();
    frame.setMinimumSize(new Dimension(200, 200));
    frame.addComponentListener(new ComponentAdapter() {
      public void componentResized(ComponentEvent evt) {
        Dimension size = frame.getSize();
        Dimension min = frame.getMinimumSize();
        if (size.getWidth() < min.getWidth()) {
          frame.setSize((int) min.getWidth(), (int) size.getHeight());
        }
        if (size.getHeight() < min.getHeight()) {
          frame.setSize((int) size.getWidth(), (int) min.getHeight());
        }
      }
    });
    frame.setSize(300, 300);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}