すべてのコンテナーには、独自の規則に従って含まれる要素の位置とサイズを設定するレイアウト マネージャーがあります。JFrame
デフォルトのレイアウトはBorderLayout
で、デフォルトで左側に配置されます。
コンポーネントを絶対に配置するには、コンポーネントを追加/削除/変更するたびにレイアウトマネージャーを設定してnull
明示的に呼び出す必要があります。コンポーネントの位置だけでなく、コンポーネントのサイズも設定する必要があります (たとえば、1 回の呼び出しですべてを設定するために使用します。repaint()
JFrame
setBounds
例として、次のコードはあなたが望むことをします:
public class Test extends JFrame {
public Test() {
// remove any layout manager.
setLayout(null);
setTitle("Help me");
setSize(500, 500);
JLabel text = new JLabel("test");
// set size and position of component.
text.setBounds(new Rectangle(100, 100, 200, 200));
// add component.
add(text);
// explicitely call repaint().
repaint();
}
public static void main(String[] args) {
new Test().setVisible(true);
}
}
詳細については、レイアウト マネージャーを使用しない場合の Oracle チュートリアルを参照してください。
編集:すべてを完全に配置するのは通常面倒なので、通常のレイアウトマネージャーを使用して目的を達成することをお勧めします。