アプリ版:「スタンプのみでお礼する」機能のリリースについて

Javaで簡単なピアノを演奏するプログラムを作成しています。

初心者なので、色々経験を積んでいく最中です。
他にも、ブロック崩しも並行で作成中なんですが、Javaでピアノ演奏のアプリケーションも
おもしろそうだと思ったので、この期に作ろうと思いました。

それで、フレームの表示(フレームを経由してキーボードの情報を受けてます)と、キーリスナーの
実装、サウンド用のAudioClipの変数も用意しました(多数入れるので、配列の形で用意してます)

その後、AudioClipの変数の中に、wavファイルを指定して、ここで一旦実行結果を確認しようと思いコンパイラしたのですが、フレームの表示はOK、キーの入力もOKだったんですが、なぜか音が出なかく、代わりにエラーが出ました。

そのエラーの内容が下記です。
==================================
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Sound.keyPressed(Sound.java:26)
at java.awt.Component.processKeyEvent(Component.java:6247)
at java.awt.Component.processEvent(Component.java:6066)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Window.processEvent(Window.java:1836)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.ja
va:1850)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboard
FocusManager.java:712)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeybo
ardFocusManager.java:990)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeybo
ardFocusManager.java:855)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFoc
usManager.java:676)
at java.awt.Component.dispatchEventImpl(Component.java:4524)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessCo
ntrolContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessCo
ntrolContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessCo
ntrolContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
ad.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

==================================
以上が、出力されたエラーの内容です。
Javaのファイル名は、Mainframe(メインファイル)、Soundファイルです。
今度文化祭の方で出展しようかと思っているんですが、時間が無いためちょっと焦ってます。

恐らく、いくつか必要な情報が抜けてるかと思いますが、指摘を頂ければその都度記載させて頂きます。乱文で申し訳ございませんが、ご教授の方宜しくお願い致します。

A 回答 (4件)

しかも、ご丁寧に


>at Sound.keyPressed(Sound.java:26)
発生したクラス名、メソッド名、ファイル内の行番号まで出ていますよ。
そこでどのオブジェクトがnullになっているか確認してみては?
    • good
    • 0
この回答へのお礼

pcbeginnerさんの仰っておられるとおり、nullへの参照が原因でした。

まだまだ初心者なので、こういうことを度重ねて学習していきたいと思っています。

ご回答ありがとうございました。

お礼日時:2011/10/28 21:22

> いくつか必要な情報が抜けてるかと思いますが


ぬけてるね、だから NullPointerException

> 指摘を頂ければ
この質問じゃ「何かが足りないね」としかいいようがない。

> NullPointerException
オブジェクトが作成されてないだけ。
初歩的。
    • good
    • 1
この回答へのお礼

何とかできました!

原因はやはりnullへの参照が原因でしたww。

まだまだ初心者なので、経験を積んでいきたいと思います。

ご回答、ありがとうございます。

お礼日時:2011/10/28 21:20

「java.lang.NullPointerException」


 一般に「ヌルポ」と言われる、一番良くミスるバグです。↓
http://ja.wikipedia.org/wiki/NullPointerException
    • good
    • 1
この回答へのお礼

そうでしたか・・・・w。

不覚にもお恥ずかしいですw。
以後エラーを出さないよう、気をつけます。

ご回答ありがとうございます。

お礼日時:2011/10/28 21:14

>恐らく、いくつか必要な情報が抜けてるかと思いますが


いーや。
>java.lang.NullPointerException
以上。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

お礼日時:2011/10/28 21:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!