【Java】JFrameのサイズにはタイトルバーや枠線も含まれている!

タイトルの通り、JFrameのgetHeightなどで取得できるウィンドウのサイズには、タイトルバーやウィンドウの枠線の大きさも含まれているそうです。

うまくいかないと思ったらこんなところに落とし穴が。


JFrame frame = new JFrame();
~~~~~~~~~
Insets insets = getInsets();
int width = [指定した幅] + insets.left + insets.right;
int height = [指定した高さ] + insets.top + insets.bottom;
frame.setSize(width, height);

Insetsでウィンドウの上下左右それぞれの枠線部分(タイトルバーも含む)の大きさを取得し、目的の幅と高さにそれぞれ足したものをJFrameの大きさとすることで解決します。

何でこんなめんどくさい感じにしたんだ。。。

コメント

  1. […] にここらへんのつまづきポイント&タイトルバーの高さの取得方法を記事にしていたので、それを参考にしました。 (【Java】JFrameのサイズにはタイトルバーや枠線も含まれている!) […]