タイトルの通り、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の大きさとすることで解決します。
何でこんなめんどくさい感じにしたんだ。。。
コメント
[…] にここらへんのつまづきポイント&タイトルバーの高さの取得方法を記事にしていたので、それを参考にしました。 (【Java】JFrameのサイズにはタイトルバーや枠線も含まれている!) […]