回答編集履歴

4

修正

2025/02/16 08:12

投稿

jimbe
jimbe

スコア13286

test CHANGED
@@ -1,6 +1,6 @@
1
1
  どのオブジェクトを表示するのかをキチンと把握する必要があります。
2
2
  B は JFrame を継承していますが実際に表示されるのは B では無く B.AB() 内で作成(`JFrame f = new JFrame("GAME");`)している JFrame です。(なので B の `extends JFrame` は消したほうが良いです。)
3
- 従って各コンポーネントはこの `f` に設定しなければなりませんが、 JPanel を載せる際に
3
+ 従って各コンポーネントはこの `f` に設定しなければなりませんが、 JPanel `p1` を載せる際に
4
4
  ```java
5
5
  Container contentPane = getContentPane();
6
6
  contentPane.add(p1);

3

追加

2025/02/16 06:52

投稿

jimbe
jimbe

スコア13286

test CHANGED
@@ -13,4 +13,34 @@
13
13
  ```
14
14
  とする必要があります。
15
15
 
16
+ ---
17
+
16
18
  ついでに余計なお世話ですが、いくら初心者とはいえ公開する(ことになった)コードに A とか B とかいうクラス・メソッド名はテキトウ過ぎです。
19
+ "コードがきたない" と思われたのでしたら、整理しましょう。汚い所為でバグが見え難い場合もあります。
20
+ 整理するなら、処理内容毎では無く対象オブジェクト毎にするほうがオブジェクト指向的にやり易いと思います。(個人の見解です。)
21
+ ```java
22
+ JLabel l1 = new JLabel("label1");
23
+ JLabel l2 = new JLabel("label2");
24
+
25
+ ImageIcon icon1 = new ImageIcon("./img/ShootingHome1.png");
26
+
27
+ l1.setBounds(100,100,1000,300);
28
+ l2.setBounds(0,0,1200,700);
29
+
30
+ l2.setOpaque(true);
31
+ l2.setBackground(Color.BLACK);
32
+
33
+ l1.setIcon(icon1);
34
+ ```
35
+
36
+ ```java
37
+ JLabel l1 = new JLabel("label1");
38
+ l1.setBounds(100, 100, 1000, 300);
39
+ l1.setIcon(new ImageIcon("./img/ShootingHome1.png"));
40
+
41
+ JLabel l2 = new JLabel("label2");
42
+ l2.setBounds(0, 0, 1200, 700);
43
+ l2.setOpaque(true);
44
+ l2.setBackground(Color.BLACK);
45
+ ```
46
+

2

追記

2025/02/16 06:37

投稿

jimbe
jimbe

スコア13286

test CHANGED
@@ -1,5 +1,5 @@
1
1
  どのオブジェクトを表示するのかをキチンと把握する必要があります。
2
- B は JFrame を継承していますが実際に表示されるのは B では無く B.AB() 内で作成(`JFrame f = new JFrame("GAME");`)している JFrame です。
2
+ B は JFrame を継承していますが実際に表示されるのは B では無く B.AB() 内で作成(`JFrame f = new JFrame("GAME");`)している JFrame です。(なので B の `extends JFrame` は消したほうが良いです。)
3
3
  従って各コンポーネントはこの `f` に設定しなければなりませんが、 JPanel を載せる際に
4
4
  ```java
5
5
  Container contentPane = getContentPane();

1

マークダウン修正・追記

2025/02/16 06:33

投稿

jimbe
jimbe

スコア13286

test CHANGED
@@ -5,10 +5,12 @@
5
5
  Container contentPane = getContentPane();
6
6
  contentPane.add(p1);
7
7
  ```
8
- としてしまっており、 `contentPane` は B のコンテンツペインです。
8
+ としてしまっており、これでは `contentPane` は B のコンテンツペインです。
9
- 前述のように実際に表示されるのは 'f' ですので、
9
+ 前述のように実際に表示されるのは `f` ですので、
10
10
  ```java
11
11
  Container contentPane = f.getContentPane();
12
12
  contentPane.add(p1);
13
13
  ```
14
14
  とする必要があります。
15
+
16
+ ついでに余計なお世話ですが、いくら初心者とはいえ公開する(ことになった)コードに A とか B とかいうクラス・メソッド名はテキトウ過ぎです。