回答編集履歴
4
修正
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
追加
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
追記
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
マークダウン修正・追記
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
|
-
前述のように実際に表示されるのは
|
9
|
+
前述のように実際に表示されるのは `f` ですので、
|
10
10
|
```java
|
11
11
|
Container contentPane = f.getContentPane();
|
12
12
|
contentPane.add(p1);
|
13
13
|
```
|
14
14
|
とする必要があります。
|
15
|
+
|
16
|
+
ついでに余計なお世話ですが、いくら初心者とはいえ公開する(ことになった)コードに A とか B とかいうクラス・メソッド名はテキトウ過ぎです。
|