title: How do I resize a JFrame while maintaining aspect ratio?
body: <p>I want the user to be able to resize the JFrame's width/height, while maintaining the same ratio between its width and height. In other words, I want to force the height to change with the width keeping the same frame shape.</p>
  
  <pre><code>public void componentResized(ComponentEvent arg0)
      {
          int setHeight = arg0.getComponent().getHeight();
          int setWidth = arg0.getComponent().getWidth();
          double newWidth = 0;
          double newHeight = 0;
          {
              if(setHeight != oldHeight)
              {
                  heightChanged = true;
              }
              if(setWidth != oldWidth)
              {
                  widthChanged = true;
              }
          }
          {
              if(widthChanged == true &amp;&amp; heightChanged == false)
              {
                  newWidth = setWidth;
                  newHeight = setWidth*HEIGHT_RATIO;
              }
              else if(widthChanged == false &amp;&amp; heightChanged == true)
              {
                  newWidth = setHeight * WIDTH_RATIO;
                  newHeight = setHeight;
              }
              else if(widthChanged == true &amp;&amp; heightChanged == true)
              {
                  newWidth = setWidth;
                  newHeight = setWidth*HEIGHT_RATIO;
              }
          }
  
          int x1 = (int) newWidth;
          int y1 = (int) newHeight;
          System.out.println("W: " + x1 + " H: " + y1);
          Rectangle r = arg0.getComponent().getBounds();
          arg0.getComponent().setBounds(r.x, r.y, x1, y1);
          widthChanged = false;
          heightChanged = false;
          oldWidth = x1;
          oldHeight = y1;
      }
  </code></pre>