私はデスクトップアプリケーション用のカスタムJFrameを作成し、タイトルボックスのサブタイトルとして機能するように、アプリケーションの最上部にJPanelを追加しました。問題は、通常の左上の代わりにJPanelの真ん中にあるボタンを追加したときです。それを別の場所に設定しても移動しません。あなたはフレームにBorderLayout
を使用JPanelボタンが正しい場所にない
JFrame f = new JFrame("Hello");
f.setResizable(true);
JPanel pa = new JPanel();
JButton btn = new JButton("Exit");
btn.setBackground(Color.white);
btn.setText("Button");
btn.setSize(300, 80);
btn.setLocation(50, 0);
pa.setBackground(Color.red);
pa.setPreferredSize(new Dimension(width,60));
pa.add(btn);
f.setBackground(Color.white);
f.setUndecorated(true);
f.getContentPane().add(pa, BorderLayout.NORTH);
f.setSize(new Dimension(width,height));
f.setLocation(200, 200);
f.setVisible(true);
[パネルの使用方法 - レイアウトマネージャの設定](https://docs.oracle.com/javase/tutorial/uiswing/components/panel.html#layout) - > [レイアウトマネージャの使用](https ://docs.oracle.com/javase/tutorial/uiswing/layout/using.html) –
「通常の左上」とは、「どこに行くのか」とか、 "どこにSwingを見たことがありますか?"前者の場合は、Axelの提案([menu](https://docs.oracle.com/javase/tutorial/uiswing/components/menu.html)docs)としてSwingのドキュメントを読んでください。作成する)。後者の場合、意図したとおりに動作しているコンポーネントの例は、比較するのに役立ちます。 – dimo414