teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

コンパイル後のエラー

2017/01/20 15:08

投稿

datuota00
datuota00

スコア20

title CHANGED
File without changes
body CHANGED
@@ -161,4 +161,69 @@
161
161
 
162
162
  ```
163
163
  何をいっているかはわかるのですがどうしたらいいのか。。
164
- 何か案はございますでしょうか。
164
+ 何か案はございますでしょうか。
165
+ ###追記2
166
+ たびたびすいません。
167
+ 修正を重ねた結果コンパイルすることはできたのですが、音楽を鳴らす文字aを入力するとエラーが出てしまいます。
168
+ 私が考えるにa(h)の所がまちがっているのでは??と思うのですがわかる方、いらっしゃいますでしょうか。。
169
+ ```
170
+ import java.util.Scanner;
171
+ import java.awt.event.*;
172
+ import java.awt.geom.Ellipse2D;
173
+ import java.awt.*;
174
+ import javax.swing.*;
175
+ import java.util.*;
176
+ import java.util.Scanner;
177
+ import java.applet.*;
178
+
179
+ import java.awt.event.KeyListener;
180
+ import java.awt.event.KeyEvent;
181
+ import java.awt.event.InputEvent;
182
+
183
+ public class KRY {
184
+ public AudioClip audioBass = Applet.newAudioClip(getClass().getResource("音楽ファイル"));
185
+ static KRY h;
186
+ public static void main(String[] argst) {
187
+ String s[] = new String[5];
188
+
189
+ Scanner sc = new Scanner(System.in);
190
+ for (int i = 0; i < s.length; i++) {
191
+ System.out.println("please tipe");
192
+ s[i] = sc.next();
193
+ }
194
+
195
+ for (int i = 0; i < s.length; i++) {
196
+ System.out.printf("s[%d]=%s\n", i, s[i]);
197
+
198
+ switch (s[i]) {
199
+ case "a":
200
+ a();
201
+ break;
202
+ default:
203
+ break;
204
+ }
205
+ }
206
+ }
207
+ public static void a(KRY h) {
208
+ h.audioBass.play();
209
+ }
210
+ }
211
+ ```
212
+ 次が実行文とエラー文です。
213
+ ```
214
+ please tipe
215
+ s
216
+ please tipe
217
+ s
218
+ please tipe
219
+ s
220
+ please tipe
221
+ a
222
+ s[0]=s
223
+ s[1]=s
224
+ s[2]=s
225
+ s[3]=a
226
+ Exception in thread "main" java.lang.NullPointerException
227
+ at KRY.a(KRY.java:39);
228
+ at KRY.main(KRY.java:31);
229
+ ```

2

エラー文書き忘れました。すいません。

2017/01/20 15:08

投稿

datuota00
datuota00

スコア20

title CHANGED
File without changes
body CHANGED
@@ -149,5 +149,16 @@
149
149
  }
150
150
  ```
151
151
  これを実行してみたところこのエラーが出ます。
152
+ ```
153
+ クラス KRYのメソッド aは指定された型に適用できません。
154
+ a(s);
155
+ ^
156
+ 期待値: KRY
157
+ 検出値: String[]
158
+ 理由: 実引数String[]はメソッド呼出変換によってKRYに変換できません
159
+ エラー1個
160
+
161
+
162
+ ```
152
163
  何をいっているかはわかるのですがどうしたらいいのか。。
153
164
  何か案はございますでしょうか。

1

問題の不備と改編

2017/01/20 10:46

投稿

datuota00
datuota00

スコア20

title CHANGED
File without changes
body CHANGED
@@ -106,4 +106,48 @@
106
106
  staticでない変数 audioBassをstaticコンテキストから参照することはできません
107
107
  audioBass.play();
108
108
  ```
109
- とでてしまいますどうしたらいいでしょうか。
109
+ とでてしまいますどうしたらいいでしょうか。
110
+
111
+ ###追記
112
+ 問題に不備がありましたのと回答をふまえてコードを下記のようにしてみましたが
113
+ ```
114
+ import java.util.Scanner;
115
+ import java.applet.*;
116
+ public class KRY {
117
+
118
+ public AudioClip audioBass = Applet.newAudioClip(getClass().getResource("./WAV/Bass.wav"));
119
+ public static void main(String[] argst) {
120
+
121
+
122
+ // 文字をキーボードから入力し、配列に記憶
123
+ String s[] = new String[5];
124
+ // Scannerクラスのインスタンスの生成
125
+ Scanner sc = new Scanner(System.in);
126
+ for (int i = 0; i < s.length; i++) {
127
+ System.out.println("文字を入力");
128
+ // 文字をキーボードから入力し、配列に記憶
129
+ s[i] = sc.next();
130
+ }
131
+
132
+ for (int i = 0; i < s.length; i++) {
133
+ System.out.printf("s[%d]=%s\n", i, s[i]);
134
+
135
+ switch (s[i]) {
136
+ case "a":
137
+ a(s);
138
+ break;
139
+ default:
140
+ break;
141
+ }
142
+ }
143
+
144
+ }
145
+
146
+ public static void a(KRY s) {
147
+ s.audioBass.play();
148
+ }
149
+ }
150
+ ```
151
+ これを実行してみたところこのエラーが出ます。
152
+ 何をいっているかはわかるのですがどうしたらいいのか。。
153
+ 何か案はございますでしょうか。