• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UIのコンとーロールが勝手に再配置されてしまいます。)

UIの再配置問題について

このQ&Aのポイント
  • Javaを勉強中の方がUIを使った処理で実行中のフォームのコントロールが再配置されてしまう問題について質問です。
  • ソースコードを見る限り、作成者が意図していないにも関わらずUIが勝手に再配置されることがあるようです。
  • 原因や解決方法についてご教示いただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • zozy
  • ベストアンサー率60% (20/33)
回答No.1

間違いと思われる点が2つほどあります ・JFrameが継承されていない そもそも、GUIの構造としてはJFrameを親として、その上にコンポーネント(ボタンなどの部品)を追加していきます。 ↓これが正しい JFrame(俗にいうウィンドウ部分。ページ遷移などの役目もここ) |------JButton |------JTextField |------JLabel |------JPanel ↓質問者さんのソースですと ? |------JFrame |------JButton |------JTextField |------JLabel |------JPanel という形になってしまっています ・レイアウトが設定されていない GUIが勝手に再配置されているのではなく、配置の設定がされていないだけです。 レイアウトとは配置方法のある決まった規則で勝手に配置してくれます。 代表的なレイアウトをあげておきます。 どういった特徴があるかは自分で調べましょう 不便(ソースが簡単) ↑ java.awt.FlowLayout java.awt.BoderLayout java.awt.GridLayout java.awt.GridBagLayout javax.swing.BoxLayout java.awt.CardLayout javax.swing.GroupLayout ↓ 便利(ソースが複雑) なお、配置方法が気に食わないということもあると思います。(現にゲーム製作をしている自分としても気に食わないです) そういった場合はpaintで自分で描き画面自体にイベント処理を追加してしまうのも手ですね。 ご要望とあれば、自作のサンプルコードも載せますのでお気軽に

gneragjnl2
質問者

お礼

回答ありがとうございます。 JFrame frmMainMenu = new JFrame; frmMainMenu.add(*****); この.addでJFrame上にコントロールが配置されると 思っていたのですが違う様ですね。 原因がまったく分からなかったので参考になりました。 もう少し自分で調べて実装してみようと思います。