dポイントプレゼントキャンペーン実施中!

こんにちは、ジグソーパズルのようなものを作成しています。

ある画像(Image("a-1"~"d-2"))をドラッグするとその画像に関連した音を出すように
したいと考えています。

画像と関連させた文字を取得して、別のClassで作成した音声の配列に、文字を数字に変換して
渡してやります。

ところが、「class jsound」単独で動作させると問題なく走るのですが、
「class Text_ImageLink」の「switch 文」から、「class jsound」を呼び出そうとすると、

//========================================================
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
//========================================================
とのエラーが出ます。

どうも音声ファイルの読込みの箇所でのエラーのようですが、「class jsound」単独では動作
するので、全く理由がわかりません。

引数の型も問題無いようであり、音声の配列数もエラーを出していません。
どうか皆様方の知恵を拝借したく、宜しくお願い致します。

全体としては、非常にボリュームのあるファイルですので、ここに掲載させていただいたのは、
直接エラーと関係がある個所のみをアップしています。
(エラーについても一部のみをアップさせて頂いています。)

どうか、よろしくお願いします。

//========================================================
public class Text_ImageLink
{
int cnt ;
int text_Number ;
int[] ar2 = new int[ ( MainFrame_1.ar ).length ] ;
int moji ;
jsound js ;

Text_ImageLink( String str )
{
text_Number = Integer.parseInt( str ) ;
}

void TextChange()
{
ar2 = Arrays.copyOf( ( MainFrame_1.ar ) , ( MainFrame_1.ar ).length ) ;
moji = ar2[ text_Number ] ;

switch( moji )
{
case 0 : System.out.println( "a-1" ) ;

js = new jsound( ) ;
js.setVisible( false ) ;
js.init( ) ;
     js.start( moji ) ;

case 1 : System.out.println( "a-2" ) ;
case 2 : System.out.println( "b-1" ) ;
case 3 : System.out.println( "b-2" ) ;
case 4 : System.out.println( "c-1" ) ;
case 5 : System.out.println( "c-2" ) ;
case 6 : System.out.println( "d-1" ) ;
case 7 : System.out.println( "d-2" ) ;

default : System.out.println( "Error!!!!" ) ;
}
}
}
//========================================================

//========================================================
public class jsound extends JApplet
{
AudioClip[] clip = new AudioClip[ 8 ] ;
int nn ;
int cnt ;

public void init( )
{
cnt = -1 ;

for( int i = 1 ; i <= 4 ; i ++ )
{
for( int j = 1 ; j <= 2 ; j ++ )
{
clip[ cnt ]= getAudioClip( getDocumentBase() ,"../wave_a/" + i + "-" + j + ".wav" ) ;

clip[ cnt ].play();

if( clip[ cnt ] == null )
{
System.out.println(" clip[ cnt ] = NULL" ) ;
}
else
{
System.out.println(" clip[ cnt ] = NOT NULL " + "clip[" + cnt + "]" ) ;
}
}
}
}

public void start( int n )
{
this.nn = n ;
clip[ nn ].play() ;
}
/*
public static void main( String args[] )
{
jsound js = new jsound( 0 ) ;
}
*/
}
//========================================================

//========================================================
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.applet.Applet.getDocumentBase(Applet.java:158)
at jsound.init(jsound.java:32)
at Text_ImageLink.TextChange(MainFrame_1.java:280)
at DragLabel.dragGestureRecognized(MainFrame_1.java:131)
//========================================================

A 回答 (1件)

ん~, init はなんかいろいろとおかしい気がするんだが....



とりあえず, jsound.java の 32行目ってどこ?
    • good
    • 0
この回答へのお礼

Tacosanさん、早速の回答有難う御座います。

>jsound.java の 32行目ってどこ?

#32行目は、
「clip[ cnt ]= getAudioClip( getDocumentBase() ,"../wave_a/" + i + "-" + j + ".wav" ) ;」

です、よろしくお願いします。

お礼日時:2016/03/14 00:50

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