JavaのsetBounds()メソッドとは?使い方とサンプルコードを解説
JavaのGUIプログラミングでは、レイアウトマネージャー(Layout Manager)がコンポーネントの位置やサイズを自動的に決定します。しかし、レイアウトマネージャーを使用しない場合は、コンポーネントの位置とサイズを手動で設定する必要があります。そのような場面で活躍するのがsetBounds()メソッドです。フレームのレイアウトマネージャーをnullに設定することで、コンポーネントの位置とサイズを自由に指定できるようになります。
setBounds()メソッドの基本
setBounds()メソッドは4つの引数を取ります。第1引数と第2引数はコンポーネントの左上隅のx座標・y座標、第3引数はコンポーネントの幅(width)、第4引数はコンポーネントの高さ(height)を指定します。
構文
setBounds(int x座標, int y座標, int 幅, int 高さ)
使用例
以下は、JFrame上にボタンを配置し、setBounds()メソッドで位置とサイズを指定するサンプルコードです。
import javax.swing.*;
import java.awt.*;
public class SetBoundsTest {
public static void main(String arg[]) {
JFrame frame = new JFrame("SetBounds Method Test");
frame.setSize(375, 250);
// レイアウトをnullに設定
frame.setLayout(null);
// ボタンの作成
JButton button = new JButton("Hello Java");
// ボタンの位置とサイズを設定
button.setBounds(80,30,120,40);
frame.add(button);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}実行結果
このコードを実行すると、ウィンドウ内の指定した座標(x=80、y=30)に、幅120ピクセル・高さ40ピクセルの「Hello Java」ボタンが表示されます。

まとめ
setBounds()メソッドを使えば、レイアウトマネージャーに依存せず、コンポーネントの位置とサイズを細かく制御できます。ただし、ウィンドウのリサイズ時にレイアウトが崩れる可能性があるため、実際の開発では用途に応じてレイアウトマネージャーとの使い分けを検討することが重要です。
-
JavaのString intern()メソッドとは?その役割と使い方をわかりやすく解説
JavaにおけるStringクラスの基本Stringは、Javaで一連の文字(文字列)を格納するためのクラスで、java.langパッケージに属しています。Stringオブジェクトは一度生成すると内容を変更できない「イミュータブル(不変)」という特性を持っています。文字列の保存場所すべてのStringオブジェクトは、ヒープ領域内にある「文字列定数プール(String Constant Pool)」と呼ばれる専用のメモリ領域に格納されます。文字列リテラルを定義するたびに、JVMは文字列定数プール内にその値を持つStringオブジェクトを生成します。そのため、同じ内容の文字列リテラルが複数存在して
-
Javaのpack()メソッドとは?使い方とsetSize()との違いを解説
pack()メソッドは、JavaのWindowクラスで定義されているメソッドで、フレーム内のすべてのコンポーネントがそれぞれの推奨サイズ(preferred size)以上で表示されるように、ウィンドウのサイズを自動的に調整します。 代替手段として、setSize()メソッドやsetBounds()メソッドを呼び出して、フレームのサイズを明示的に指定する方法もあります。しかし一般的には、pack()メソッドを使用する方がsetSize()よりも推奨されています。その理由は、pack()がフレームのサイズ決定をレイアウトマネージャーに委ねることができ、レイアウトマネージャーはプラットフォーム間の