質問編集履歴
6
エラーを、例外に変えました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
キーボードの、”n””m”を押すと音が鳴るサンプラーを作りたいのですが、
|
2
|
-
AudioFormatのあたりで、
|
2
|
+
AudioFormatのあたりで、例外が出ています。
|
3
|
-
|
3
|
+
例外:
|
4
4
|
javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
|
5
5
|
調べてみると、"LineUnavailableException は、ラインが使用不可のため開けないことを示す例外です。この状況がもっともよく発生するのは、要求されたラインがすでにほかのアプリケーションによって使用されている場合です。"と、ありました。
|
6
|
+
ちなみに、他のアプリケーションは、すべて閉じました。
|
6
7
|
```java
|
7
8
|
AudioFormat frmt= new AudioFormat(44100,16,2,true,false);
|
8
9
|
DataLine.Info info= new DataLine.Info(Clip.class,frmt);
|
5
音以外の、設定の変更。
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,9 +13,9 @@
|
|
13
13
|
どなたか、ご指導くださる方、よろしくお願いいたします。
|
14
14
|
```java
|
15
15
|
import java.awt.BorderLayout;
|
16
|
-
import java.awt.event.
|
16
|
+
import java.awt.event.KeyEvent;
|
17
|
-
import java.awt.event.ActionListener;
|
18
17
|
import java.awt.event.KeyListener;
|
18
|
+
import java.awt.event.KeyListener;
|
19
19
|
import java.awt.event.KeyEvent;
|
20
20
|
import java.awt.Color;
|
21
21
|
import java.awt.Component;
|
@@ -46,31 +46,31 @@
|
|
46
46
|
}
|
47
47
|
}
|
48
48
|
|
49
|
-
class Main extends JPanel
|
49
|
+
class Main extends JPanel {
|
50
50
|
|
51
|
-
byte[] wave_data = new byte[44100];
|
51
|
+
static byte[] wave_data = new byte[44100];
|
52
52
|
|
53
|
-
JSlider slider1 = new JSlider(0, 1000);
|
53
|
+
static JSlider slider1 = new JSlider(0, 1000);
|
54
|
-
JSlider slider2 = new JSlider(0, 1000);
|
54
|
+
static JSlider slider2 = new JSlider(0, 1000);
|
55
55
|
JPanel p1;
|
56
56
|
JPanel p2;
|
57
57
|
JPanel p3;
|
58
|
-
JPanel p4;
|
58
|
+
static JPanel p4;
|
59
59
|
JPanel p5;
|
60
|
-
JPanel p6;
|
60
|
+
JPanel p6, p7, p8;
|
61
|
-
JLabel label1;
|
61
|
+
static JLabel label1;
|
62
|
-
JLabel label2;
|
62
|
+
static JLabel label2;
|
63
|
-
JLabel label3;
|
63
|
+
static JLabel label3;
|
64
|
-
Clip clip;
|
65
|
-
|
64
|
+
JButton button1, button2;
|
66
65
|
|
67
|
-
|
68
66
|
Main() {
|
69
67
|
|
70
68
|
slider1.setValue(100);
|
69
|
+
slider1.setFocusable(false);
|
71
|
-
slider1.addChangeListener(
|
70
|
+
slider1.addChangeListener(new Slider());
|
72
71
|
slider2.setValue(100);
|
72
|
+
slider2.setFocusable(false);
|
73
|
-
slider2.addChangeListener(
|
73
|
+
slider2.addChangeListener(new Slider());
|
74
74
|
|
75
75
|
p1 = new JPanel();
|
76
76
|
p1.add(slider1);
|
@@ -85,91 +85,93 @@
|
|
85
85
|
p3.add(label1);
|
86
86
|
p3.add(label2);
|
87
87
|
|
88
|
+
p7 = new JPanel();
|
89
|
+
p8 = new JPanel();
|
90
|
+
Key key = new Key();
|
91
|
+
p7.addKeyListener(key);
|
92
|
+
p7.setFocusable(true);
|
93
|
+
|
88
94
|
p2 = new JPanel();
|
89
|
-
// p4.setPreferredSize(new Dimension(600, 400));
|
90
95
|
p2.setLayout(new BorderLayout());
|
91
96
|
p2.add(p1, BorderLayout.NORTH);
|
92
97
|
p2.add(p3, BorderLayout.CENTER);
|
93
|
-
add(
|
98
|
+
p2.add(p7, BorderLayout.SOUTH);
|
94
99
|
|
100
|
+
label3 = new JLabel("");
|
95
101
|
p4 = new JPanel();
|
96
|
-
|
102
|
+
p4.setPreferredSize(new Dimension(600, 200));
|
97
103
|
|
104
|
+
p4.setLayout(new BorderLayout());
|
105
|
+
p4.add(label3, BorderLayout.NORTH);
|
106
|
+
p4.add(new Paint(), BorderLayout.SOUTH);
|
107
|
+
|
98
|
-
|
108
|
+
setLayout(new BorderLayout());
|
109
|
+
add(p2, BorderLayout.NORTH);
|
110
|
+
add(p4, BorderLayout.CENTER);
|
99
111
|
// p5.PpsetPreferredSize(new Dimension(600, 350));
|
100
|
-
p5.add(p3);
|
101
|
-
p5.add(p4);
|
102
|
-
add(p5);
|
103
|
-
|
104
|
-
label3 = new JLabel("");
|
105
|
-
add(label3);
|
106
|
-
|
107
|
-
setFocusable(true);
|
108
|
-
addKeyListener(this);
|
109
112
|
}
|
113
|
+
}
|
114
|
+
class Key implements KeyListener {
|
110
115
|
|
111
|
-
|
116
|
+
int i;
|
112
|
-
label1.setText(""+slider1.getValue());
|
113
|
-
label2.setText(""+slider2.getValue());
|
114
|
-
}
|
115
117
|
|
116
|
-
void sound(int i) {
|
117
|
-
try{
|
118
|
-
double l1 = i*slider1.getValue()/44100.0;
|
119
|
-
double l2 = i*slider2.getValue()/44100.0;
|
120
|
-
for(int j=0;j<wave_data.length;j++){
|
121
|
-
wave_data[j]= (byte)(110*(wave_data.length-(j+1))/wave_data.length*Math.sin((j*l1)*Math.PI*2)
|
122
|
-
*Math.sin((j*l2)*Math.PI*2));
|
123
|
-
}
|
124
|
-
AudioFormat frmt= new AudioFormat(44100,16,2,true,false);
|
125
|
-
DataLine.Info info= new DataLine.Info(Clip.class,frmt);
|
126
|
-
clip= (Clip)AudioSystem.getLine(info);
|
127
|
-
clip.open(frmt,wave_data,0,wave_data.length);
|
128
|
-
clip.start();
|
129
|
-
}
|
130
|
-
catch(Exception e){e.printStackTrace(System.err);}
|
131
|
-
}
|
132
|
-
|
133
|
-
public void paintComponent(Graphics g) {
|
134
|
-
super.paintComponent(g);
|
135
|
-
g.setColor(Color.RED);
|
136
|
-
for(int i = 0; i < (wave_data.length/200-1); i++) {
|
137
|
-
g.drawLine(i*2,128-wave_data[i*200],(i+1)*2,128-wave_data[(i+1)*200]);
|
138
|
-
}
|
139
|
-
}
|
140
|
-
|
141
|
-
|
118
|
+
public void keyPressed(KeyEvent e) {
|
119
|
+
Main.label3.setText(e.getKeyText(e.getKeyCode()));
|
142
120
|
if(e.getKeyCode() == KeyEvent.VK_N) {
|
143
|
-
|
121
|
+
new Sound(1);
|
144
|
-
|
122
|
+
}else if(e.getKeyCode() == KeyEvent.VK_M) {
|
145
|
-
|
123
|
+
new Sound(2);
|
146
124
|
}
|
147
|
-
else if(e.getKeyCode() == KeyEvent.VK_M) {
|
148
|
-
sound(2);
|
149
|
-
label3.setText(e.getKeyText(e.getKeyCode()));
|
150
|
-
|
125
|
+
Main.p4.add(new Paint());
|
151
126
|
}
|
152
|
-
}
|
153
127
|
|
154
128
|
public void keyReleased(KeyEvent e) {
|
155
129
|
// clip.drain();
|
156
|
-
clip.close();
|
130
|
+
// clip.close();
|
157
|
-
clip.stop();
|
131
|
+
// clip.stop();
|
158
132
|
}
|
159
133
|
public void keyTyped(KeyEvent e) {}
|
160
134
|
}
|
161
135
|
|
162
|
-
|
136
|
+
class Paint extends JPanel {
|
163
|
-
String string;
|
164
137
|
|
165
|
-
void
|
138
|
+
protected void paintComponent(Graphics g) {
|
166
|
-
|
139
|
+
super.paintComponent(g);
|
140
|
+
g.setColor(Color.RED);
|
141
|
+
for(int i = 0; i < (Main.wave_data.length/200-1); i++) {
|
142
|
+
g.drawLine(i*2,128-Main.wave_data[i*200],(i+1)*2,128-Main.wave_data[(i+1)*200]);
|
143
|
+
}
|
167
144
|
}
|
145
|
+
}
|
168
146
|
|
169
|
-
|
147
|
+
class Sound {
|
170
|
-
return string;
|
171
|
-
}
|
172
|
-
}*/
|
173
148
|
|
149
|
+
Clip clip;
|
174
150
|
|
151
|
+
Sound(int i) {
|
152
|
+
double l1 = i*Main.slider1.getValue()/44100.0;
|
153
|
+
double l2 = i*Main.slider2.getValue()/44100.0;
|
154
|
+
for(int j=0;j<Main.wave_data.length;j++){
|
155
|
+
Main.wave_data[j]= (byte)(110*(Main.wave_data.length-(j+1))/Main.wave_data.length*Math.sin((j*l1)*Math.PI*2)
|
156
|
+
*Math.sin((j*l2)*Math.PI*2));
|
157
|
+
}
|
158
|
+
|
159
|
+
try{
|
160
|
+
AudioFormat frmt= new AudioFormat(44100,16,2,true,false);
|
161
|
+
DataLine.Info info= new DataLine.Info(Clip.class,frmt);
|
162
|
+
clip= (Clip)AudioSystem.getLine(info);
|
163
|
+
clip.open(frmt,Main.wave_data,0,Main.wave_data.length);
|
164
|
+
clip.start();
|
165
|
+
}
|
166
|
+
catch(Exception e){e.printStackTrace(System.err);}
|
167
|
+
}
|
168
|
+
}
|
169
|
+
|
170
|
+
class Slider implements ChangeListener {
|
171
|
+
public void stateChanged(ChangeEvent e) {
|
172
|
+
Main.label1.setText(""+Main.slider1.getValue());
|
173
|
+
Main.label2.setText(""+Main.slider2.getValue());
|
174
|
+
}
|
175
|
+
}
|
176
|
+
|
175
177
|
```
|
4
例外の、情報を更新。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,21 +1,8 @@
|
|
1
1
|
キーボードの、”n””m”を押すと音が鳴るサンプラーを作りたいのですが、
|
2
|
-
キーを押しても変化がありません。
|
3
|
-
キーを押すところあたりが、怪しいのですが、適当な処理ができません。
|
4
|
-
```java
|
5
|
-
public void keyPressed(KeyEvent e) {
|
6
|
-
if(e.getKeyCode() == KeyEvent.VK_N) {
|
7
|
-
sound(1);
|
8
|
-
p4.repaint();
|
9
|
-
}
|
10
|
-
else if(e.getKeyCode() == KeyEvent.VK_M) {
|
11
|
-
sound(2);
|
12
|
-
p4.repaint();
|
13
|
-
}
|
14
|
-
|
15
|
-
```
|
16
2
|
AudioFormatのあたりで、エラーが出ています。
|
17
3
|
エラー:
|
18
4
|
javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
|
5
|
+
調べてみると、"LineUnavailableException は、ラインが使用不可のため開けないことを示す例外です。この状況がもっともよく発生するのは、要求されたラインがすでにほかのアプリケーションによって使用されている場合です。"と、ありました。
|
19
6
|
```java
|
20
7
|
AudioFormat frmt= new AudioFormat(44100,16,2,true,false);
|
21
8
|
DataLine.Info info= new DataLine.Info(Clip.class,frmt);
|
3
AudioFormatのあたりで、エラーが出ているので、追記。
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,24 +13,15 @@
|
|
13
13
|
}
|
14
14
|
|
15
15
|
```
|
16
|
-
|
16
|
+
AudioFormatのあたりで、エラーが出ています。
|
17
|
+
エラー:
|
18
|
+
javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
|
17
19
|
```java
|
20
|
+
AudioFormat frmt= new AudioFormat(44100,16,2,true,false);
|
21
|
+
DataLine.Info info= new DataLine.Info(Clip.class,frmt);
|
18
|
-
|
22
|
+
clip= (Clip)AudioSystem.getLine(info);
|
19
|
-
// if(e.getKeyCode() == KeyEvent.VK_N) {
|
20
|
-
// sound(1);
|
21
|
-
label3.setText("hello!");
|
22
|
-
// p4.repaint();
|
23
|
-
// }
|
24
|
-
// else if(e.getKeyCode() == KeyEvent.VK_M) {
|
25
|
-
// sound(2);
|
26
|
-
|
23
|
+
clip.open(frmt,wave_data,0,wave_data.length);
|
27
|
-
|
24
|
+
clip.start();
|
28
|
-
// }
|
29
|
-
// else {}
|
30
|
-
}
|
31
|
-
|
32
|
-
public void keyReleased(KeyEvent e) {}
|
33
|
-
public void keyTyped(KeyEvent e) {}
|
34
25
|
```
|
35
26
|
どなたか、ご指導くださる方、よろしくお願いいたします。
|
36
27
|
```java
|
@@ -83,6 +74,7 @@
|
|
83
74
|
JLabel label1;
|
84
75
|
JLabel label2;
|
85
76
|
JLabel label3;
|
77
|
+
Clip clip;
|
86
78
|
Graphics g;
|
87
79
|
|
88
80
|
|
@@ -99,8 +91,8 @@
|
|
99
91
|
|
100
92
|
label1 = new JLabel();
|
101
93
|
label2 = new JLabel();
|
102
|
-
label1.setText("
|
94
|
+
label1.setText(""+slider1.getValue());
|
103
|
-
label2.setText("
|
95
|
+
label2.setText(""+slider2.getValue());
|
104
96
|
|
105
97
|
p3 = new JPanel();
|
106
98
|
p3.add(label1);
|
@@ -117,7 +109,7 @@
|
|
117
109
|
// p4.setPreferredSize(new Dimension(600, 200));
|
118
110
|
|
119
111
|
p5 = new JPanel();
|
120
|
-
// p5.
|
112
|
+
// p5.PpsetPreferredSize(new Dimension(600, 350));
|
121
113
|
p5.add(p3);
|
122
114
|
p5.add(p4);
|
123
115
|
add(p5);
|
@@ -125,12 +117,13 @@
|
|
125
117
|
label3 = new JLabel("");
|
126
118
|
add(label3);
|
127
119
|
|
120
|
+
setFocusable(true);
|
128
121
|
addKeyListener(this);
|
129
122
|
}
|
130
123
|
|
131
124
|
public void stateChanged(ChangeEvent e) {
|
132
|
-
label1.setText("
|
125
|
+
label1.setText(""+slider1.getValue());
|
133
|
-
label2.setText("
|
126
|
+
label2.setText(""+slider2.getValue());
|
134
127
|
}
|
135
128
|
|
136
129
|
void sound(int i) {
|
@@ -141,9 +134,9 @@
|
|
141
134
|
wave_data[j]= (byte)(110*(wave_data.length-(j+1))/wave_data.length*Math.sin((j*l1)*Math.PI*2)
|
142
135
|
*Math.sin((j*l2)*Math.PI*2));
|
143
136
|
}
|
144
|
-
AudioFormat frmt= new AudioFormat(44100,
|
137
|
+
AudioFormat frmt= new AudioFormat(44100,16,2,true,false);
|
145
138
|
DataLine.Info info= new DataLine.Info(Clip.class,frmt);
|
146
|
-
|
139
|
+
clip= (Clip)AudioSystem.getLine(info);
|
147
140
|
clip.open(frmt,wave_data,0,wave_data.length);
|
148
141
|
clip.start();
|
149
142
|
}
|
@@ -159,20 +152,23 @@
|
|
159
152
|
}
|
160
153
|
|
161
154
|
public void keyPressed(KeyEvent e) {
|
162
|
-
|
155
|
+
if(e.getKeyCode() == KeyEvent.VK_N) {
|
163
|
-
|
156
|
+
sound(1);
|
164
|
-
label3.setText(
|
157
|
+
label3.setText(e.getKeyText(e.getKeyCode()));
|
165
|
-
|
158
|
+
p4.repaint();
|
166
|
-
|
159
|
+
}
|
167
|
-
|
160
|
+
else if(e.getKeyCode() == KeyEvent.VK_M) {
|
168
|
-
|
161
|
+
sound(2);
|
169
|
-
|
162
|
+
label3.setText(e.getKeyText(e.getKeyCode()));
|
170
|
-
|
163
|
+
p4.repaint();
|
171
|
-
|
164
|
+
}
|
172
|
-
// else {}
|
173
165
|
}
|
174
166
|
|
175
|
-
public void keyReleased(KeyEvent e) {
|
167
|
+
public void keyReleased(KeyEvent e) {
|
168
|
+
// clip.drain();
|
169
|
+
clip.close();
|
170
|
+
clip.stop();
|
171
|
+
}
|
176
172
|
public void keyTyped(KeyEvent e) {}
|
177
173
|
}
|
178
174
|
|
@@ -188,4 +184,5 @@
|
|
188
184
|
}
|
189
185
|
}*/
|
190
186
|
|
187
|
+
|
191
188
|
```
|
2
回答に関する変更。
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,16 +13,27 @@
|
|
13
13
|
}
|
14
14
|
|
15
15
|
```
|
16
|
-
|
16
|
+
KeyListenerのオーバーライドの部分を、下記のように変えても、変わりませんでした。
|
17
17
|
```java
|
18
|
-
p6 = new JPanel();
|
19
|
-
|
18
|
+
public void keyPressed(KeyEvent e) {
|
19
|
+
// if(e.getKeyCode() == KeyEvent.VK_N) {
|
20
|
+
// sound(1);
|
21
|
+
label3.setText("hello!");
|
22
|
+
// p4.repaint();
|
23
|
+
// }
|
24
|
+
// else if(e.getKeyCode() == KeyEvent.VK_M) {
|
25
|
+
// sound(2);
|
26
|
+
// label3.setText("m");
|
27
|
+
// p4.repaint();
|
28
|
+
// }
|
29
|
+
// else {}
|
30
|
+
}
|
20
31
|
|
32
|
+
public void keyReleased(KeyEvent e) {}
|
33
|
+
public void keyTyped(KeyEvent e) {}
|
21
34
|
```
|
22
35
|
どなたか、ご指導くださる方、よろしくお願いいたします。
|
23
36
|
```java
|
24
|
-
package net.ddns.fantasia;
|
25
|
-
|
26
37
|
import java.awt.BorderLayout;
|
27
38
|
import java.awt.event.ActionEvent;
|
28
39
|
import java.awt.event.ActionListener;
|
@@ -71,6 +82,7 @@
|
|
71
82
|
JPanel p6;
|
72
83
|
JLabel label1;
|
73
84
|
JLabel label2;
|
85
|
+
JLabel label3;
|
74
86
|
Graphics g;
|
75
87
|
|
76
88
|
|
@@ -85,13 +97,6 @@
|
|
85
97
|
p1.add(slider1);
|
86
98
|
p1.add(slider2);
|
87
99
|
|
88
|
-
p2 = new JPanel();
|
89
|
-
// p4.setPreferredSize(new Dimension(600, 400));
|
90
|
-
p2.setLayout(new BorderLayout());
|
91
|
-
p2.add(p1, BorderLayout.CENTER);
|
92
|
-
|
93
|
-
add(p2);
|
94
|
-
|
95
100
|
label1 = new JLabel();
|
96
101
|
label2 = new JLabel();
|
97
102
|
label1.setText("値:"+slider1.getValue());
|
@@ -101,6 +106,13 @@
|
|
101
106
|
p3.add(label1);
|
102
107
|
p3.add(label2);
|
103
108
|
|
109
|
+
p2 = new JPanel();
|
110
|
+
// p4.setPreferredSize(new Dimension(600, 400));
|
111
|
+
p2.setLayout(new BorderLayout());
|
112
|
+
p2.add(p1, BorderLayout.NORTH);
|
113
|
+
p2.add(p3, BorderLayout.CENTER);
|
114
|
+
add(p2);
|
115
|
+
|
104
116
|
p4 = new JPanel();
|
105
117
|
// p4.setPreferredSize(new Dimension(600, 200));
|
106
118
|
|
@@ -110,8 +122,10 @@
|
|
110
122
|
p5.add(p4);
|
111
123
|
add(p5);
|
112
124
|
|
113
|
-
|
125
|
+
label3 = new JLabel("");
|
126
|
+
add(label3);
|
127
|
+
|
114
|
-
|
128
|
+
addKeyListener(this);
|
115
129
|
}
|
116
130
|
|
117
131
|
public void stateChanged(ChangeEvent e) {
|
@@ -119,21 +133,6 @@
|
|
119
133
|
label2.setText("値:"+slider2.getValue());
|
120
134
|
}
|
121
135
|
|
122
|
-
public void keyPressed(KeyEvent e) {
|
123
|
-
if(e.getKeyCode() == KeyEvent.VK_N) {
|
124
|
-
sound(1);
|
125
|
-
p4.repaint();
|
126
|
-
}
|
127
|
-
else if(e.getKeyCode() == KeyEvent.VK_M) {
|
128
|
-
sound(2);
|
129
|
-
p4.repaint();
|
130
|
-
}
|
131
|
-
}
|
132
|
-
|
133
|
-
public void keyReleased(KeyEvent e) {}
|
134
|
-
|
135
|
-
public void keyTyped(KeyEvent e) {}
|
136
|
-
|
137
136
|
void sound(int i) {
|
138
137
|
try{
|
139
138
|
double l1 = i*slider1.getValue()/44100.0;
|
@@ -158,6 +157,35 @@
|
|
158
157
|
g.drawLine(i*2,128-wave_data[i*200],(i+1)*2,128-wave_data[(i+1)*200]);
|
159
158
|
}
|
160
159
|
}
|
160
|
+
|
161
|
+
public void keyPressed(KeyEvent e) {
|
162
|
+
// if(e.getKeyCode() == KeyEvent.VK_N) {
|
163
|
+
// sound(1);
|
164
|
+
label3.setText("hello!");
|
165
|
+
// p4.repaint();
|
166
|
+
// }
|
167
|
+
// else if(e.getKeyCode() == KeyEvent.VK_M) {
|
168
|
+
// sound(2);
|
169
|
+
// label3.setText("m");
|
170
|
+
// p4.repaint();
|
171
|
+
// }
|
172
|
+
// else {}
|
173
|
+
}
|
174
|
+
|
175
|
+
public void keyReleased(KeyEvent e) {}
|
176
|
+
public void keyTyped(KeyEvent e) {}
|
161
177
|
}
|
162
178
|
|
179
|
+
/*class FixString {
|
180
|
+
String string;
|
181
|
+
|
182
|
+
void setString(String string) {
|
183
|
+
this.string = string;
|
184
|
+
}
|
185
|
+
|
186
|
+
String getString() {
|
187
|
+
return string;
|
188
|
+
}
|
189
|
+
}*/
|
190
|
+
|
163
191
|
```
|
1
コードを、追加しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,8 +13,16 @@
|
|
13
13
|
}
|
14
14
|
|
15
15
|
```
|
16
|
+
ご回答があったので、下記を追加いたしましたが、動きません。
|
17
|
+
```java
|
18
|
+
p6 = new JPanel();
|
19
|
+
p6.addKeyListener(this);
|
20
|
+
|
21
|
+
```
|
16
22
|
どなたか、ご指導くださる方、よろしくお願いいたします。
|
17
23
|
```java
|
24
|
+
package net.ddns.fantasia;
|
25
|
+
|
18
26
|
import java.awt.BorderLayout;
|
19
27
|
import java.awt.event.ActionEvent;
|
20
28
|
import java.awt.event.ActionListener;
|
@@ -60,6 +68,7 @@
|
|
60
68
|
JPanel p3;
|
61
69
|
JPanel p4;
|
62
70
|
JPanel p5;
|
71
|
+
JPanel p6;
|
63
72
|
JLabel label1;
|
64
73
|
JLabel label2;
|
65
74
|
Graphics g;
|
@@ -100,6 +109,9 @@
|
|
100
109
|
p5.add(p3);
|
101
110
|
p5.add(p4);
|
102
111
|
add(p5);
|
112
|
+
|
113
|
+
p6 = new JPanel();
|
114
|
+
p6.addKeyListener(this);
|
103
115
|
}
|
104
116
|
|
105
117
|
public void stateChanged(ChangeEvent e) {
|