私は電話機をコーディングしようとしています。最初に押したボタンごとに異なるサウンドを割り当てることをやりました。JSwing - 異なるパラメータ値を持つイベントハンドラを使用する
私は、このいずれかのように10件のハンドラ書きたくない:私はStringパラメータ(wavファイルへのルートを)受け入れるユニークなハンドラを、使用したい、代わりに
private void buttonOneHandler(java.awt.event.MouseEvent evt) {
try{
buttonSound = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.getAudioInputStream(new File("resources/buttonOne.wav"));
buttonSound.open(ais);
buttonSound.loop(0);
}
catch(Exception e)
{
e.printStackTrace();
}
}
を、各ボタンはgetAudioInputStream
のパラメータ値を変更します。
これは可能ですか? ありがとうございます。
そこに行く、JB Nizet!今それは働いている。しかし、あなたのコードに関して2つの質問があります(答えが明白な場合は私には納得してください):1)なぜprivateコンストラクタを持っていますか? 2)下位コード(addActionListener)はどこに置くことをお勧めしますか?内部のカスタム初期化メソッド? また、MouseListenerの使用を避けることについての有益な感謝のおかげで、ありがとうございます。そうです。 もう一度、ありがとうございます! – ilMarto
プライベートクラスにあるので、プライベートコンストラクタを持っています。したがって、たとえコンストラクタが公開されていても、それは囲むクラスからしかアクセスできません。しかしそれはあまり重要ではありません。アクションリスナーを追加することは実際にパネル/ダイアログ/フレームの初期化の一部になるはずです。 –