Hallo,
Also ich habe eine Klasse (soundLib) geschrieben und in dieser sind Methoden zum Abspielen von Sounds und Loops etc....nun hab ich diese in meinen Frame benutzt um dort Sounds abzuspielen.
Code:
[Java]
import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Image;
public class UfoFrame extends Frame implements Runnable, KeyListener, MouseListener{
// Anfang Variablen
// Anfang Attribute
Ufo ufo; Plattform zielPlattform; Plattform2 plattform2; Alien alien; Map map; Baum baum;
Panel cp;
// Menue
Menue menue;
// Sound Library
soundLib slib;
boolean start=false;
// Spielthread
private Thread th;
private int speed=20;
// Variablen für die Doppelpufferung
private Image dbImage;
private Graphics dbg;
private boolean laufen=true;
private Button button2 = new Button();
private Button button1 = new Button();
// Startvar ist für das anzeigen der Menues da
public int startvar=0;
// Auflösungsvar ist zum ändern der Auflösung
public int aufloesungsvar=0;
// Bilder Importieren
Image img=getToolkit().getImage("pics/alienHintergrund.jpg");
Image img3=getToolkit().getImage("pics/alienHintergrundMenue.jpg");
Image img1=getToolkit().getImage("pics/buttonKleinBlau1.jpg");
Image img2=getToolkit().getImage("pics/buttonBlau2.jpg");
Image img4=getToolkit().getImage("pics/hintergrundStage-2.jpg");
Image img5=getToolkit().getImage("pics/levelPassedScreen.jpg");
Image img6=getToolkit().getImage("pics/creditsWallpaper.jpg");
Image img7=getToolkit().getImage("pics/buttonSchwarzCredits1.jpg");
Image img8=getToolkit().getImage("pics/helpWallpaper.jpg");
Image img9=getToolkit().getImage("pics/mond.gif");
Image img10=getToolkit().getImage("pics/GameEndWallpaper.jpg");
// Ende Attribute
// Ende Variablen
public UfoFrame(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { System.exit(0); }
});
int frameWidth = 1280;
int frameHeight = 670;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
//int x =50+ (d.width - getSize().width) / 2;
//int y =-50+ (d.height - getSize().height) / 2;
int y=10;
setLocation(0, y);
this.setLayout(null);
this.setBackground(Color.lightGray);
// Ende Komponenten
setResizable(false);
setVisible(true);
addKeyListener(this);
addMouseListener(this);
//add(cp);
ufo=new Ufo();
zielPlattform=new Plattform();
plattform2=new Plattform2();
ufo.setPlattform(zielPlattform);
alien=new Alien();
map=new Map();
baum=new Baum();
ufo.setAlien(alien);
menue=new Menue();
// Sounds
slib=new soundLib();
slib.loadSound("explosion","sounds/Explosion.wav");
slib.loadSound("titelsong","sounds/Limp Bizkit - Boiler.mp3");
// Sounds Ende
if (startvar==2 || startvar==6) {
start();
}
// Anfang Komponenten
}
// Anfang Methoden
public void start()
{
// Schaffen eines neuen Threads, in dem das Spiel läuft
th = new Thread(this);
// Starten des Threads
th.start ();
}
public void aufloesungAendern() {
if (startvar!=2 || aufloesungsvar==0) {
int frameWidth = 1280;
int frameHeight = 670;
}
if (startvar!=2 || aufloesungsvar==1) {
int frameWidth = 1650;
int frameHeight = 700;
}
if (startvar==2) {
int frameWidth = 1280;
int frameHeight = 670;
}
}
public void run()
{
if (startvar==2 || startvar==6) {
// Erniedrigen der ThreadPriority um zeichnen zu erleichtern
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
// Solange true ist läuft der Thread weiter
while (laufen){
try
{
if(ufo.zustand==0)
{
ufo.fliegen();
map.rauchBewegen();
map.wolkenBewegen1();
map.wolkenBewegen2();
update(getGraphics());
}
alien.laufen();
// Stoppen des Threads für in Klammern angegebene Millisekunden
Thread.sleep(speed);
}
catch (InterruptedException ex)
{
// do nothing
}
// Zurücksetzen der ThreadPriority auf Maximalwert
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
}
}
public void musik() {
if (startvar>0) {
slib.playSound("titelsong");
}
}
public void update (Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
// Initialisierung des DoubleBuffers
// Fehlermeldung bei Fehlenden Bildern
if (ClassLoader.getSystemResource("menueBackground")==null) {
System.out.println("Ressource nicht gefunden");
}
if (startvar==0) {
// Startbildschirm
g.drawImage(img,100,0,this);
}
if (startvar==1) {
// Hauptmenue
// Hauptmenue Wallpaper
g.drawImage(img8,0,0,this);
g.setColor(Color.gray);
g.fillRect(40,0,1200,700);
g.drawImage(img3,200,80,this);
g.drawImage(img1,590,200,this);
g.setColor(Color.green);
g.drawString("Start Game",640,225);
g.drawImage(img1,590,250,this);
g.setColor(Color.green);
g.drawString("Help",660,275);
g.drawImage(img1,590,300,this);
g.setColor(Color.green);
g.drawString("Exit",660,325);
g.drawImage(img1,590,350,this);
g.setColor(Color.green);
g.drawString("Credits",655,375);
g.setColor(Color.gray);
g.fillRect(575,450,200,80);
g.setColor(Color.BLACK);
g.drawString("Info",650,470);
g.drawString("Das ist Space Taxi V. 0.01",600,500);
g.drawString("Space Taxi V. 0.01",625,150);
}
if(startvar==2){
// Spiel
if (dbImage == null)
{
dbImage = createImage (this.getSize().width, this.getSize().height);
}
dbg = dbImage.getGraphics (); // <<<<<<<<<--------------------
// Bildschirm im Hintergrund löschen
dbg.setColor (getBackground ());
dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);
// Auf gelöschten Hintergrund Vordergrund zeichnen
dbg.setColor (getForeground());
// Nun fertig gezeichnetes Bild Offscreen auf dem richtigen Bildschirm anzeigen
map.umfeld(dbg);
map.wolken1(dbg);
map.wolken2(dbg);
map.rauch(dbg);
map.haus(dbg);
baum.baum1(dbg);
map.boum2(dbg);
ufo.zeichnen(dbg);
zielPlattform.zeichnenLevel(dbg);
alien.zeichnenAlien1(dbg);
g.drawImage (dbImage, 0, 0, this);
}
if (startvar==3) {
// Credits
g.drawImage(img6,0,0,this);
// Zurück Button
g.drawImage(img7,190,180,this);
g.drawImage(img1,600,550,this);
g.setColor(Color.black);
g.drawString("Zurück",640,570);
System.out.println("Credits");
menue.zeichneCredits(g);
}
if (startvar==4) {
// Help
// Help Wallpaper
g.drawImage(img8,0,0,this);
menue.zeichneHelp(g);
// Zurück Button
g.drawImage(img1,560,600,this);
g.setColor(Color.green);
g.drawString("Zurück",620,625);
}
if (startvar==5) {
// Stage 2 Screen
g.drawImage(img5,0,0,this);
g.drawImage(img2,500,150,this);
// Stage 2 Button
g.setColor(Color.black);
g.drawString("Stage 2",600,185);
}
if (startvar==6) {
ufo.setStage();
if (dbImage == null)
{
dbImage = createImage (this.getSize().width, this.getSize().height);
}
dbg = dbImage.getGraphics (); // <<<<<<<<<--------------------
// Bildschirm im Hintergrund löschen
dbg.setColor (getBackground ());
dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);
// Auf gelöschten Hintergrund Vordergrund zeichnen
dbg.setColor (getForeground());
// Hintergrund für Stage 2
dbg.drawImage(img4,0,0,this);
dbg.drawImage(img9,700,200,this);
ufo.zeichnen(dbg);
plattform2.zeichnenLevel(dbg);
alien.zeichnenAlien1(dbg);
g.drawImage (dbImage, 0, 0, this);
}
if (startvar==7) {
g.drawImage(img10,0,0,this);
}
}
public void keyPressed(KeyEvent e)
{
System.out.println("User pressed key " + e.getKeyCode());
if(e.getKeyCode()==37) ufo.schubRechts(getGraphics());
if(e.getKeyCode()==38) ufo.schubHoch(getGraphics());
if(e.getKeyCode()==39) ufo.schubLinks(getGraphics());
if(e.getKeyCode()==40) ufo.schubRunter(getGraphics());
// Zum Menue zurück
if(e.getKeyCode()==112) startvar=1;
// Zum Help Menu zurück
if(e.getKeyCode()==113) startvar=4;
// Programm Beenden
if(e.getKeyCode()==27) System.exit(0);
}
public void keyReleased(KeyEvent e)
{
System.out.println("User released key " + e.getKeyCode());
}
public void keyTyped(KeyEvent e)
{
System.out.println("User typed key " + e.getKeyCode());
}
public void mouseClicked(MouseEvent e)
{
int x=e.getX();
int y=e.getY();
System.out.println("Maus at "+x+" "+y);
// Stage Change
if(x>500 && x< 800 && y>450 && y<510 && startvar==2){
startvar=5;
setTitle("Stage Screen");
repaint();
}
// Stage 2 Menue Funktion
if (x<795 && x>520 && y<208 && y>149 && startvar==5) {
startvar=6;
repaint();
}
if(x>500 && x< 800 && y>450 && y<510 && startvar==6){
startvar=7;
setTitle("Game End Screen");
repaint();
}
// Startbutton Funktion
if (startvar==0) {
startvar=1;
repaint();
}
if(x>600 && x< 750 && y>200 && y<244 && startvar==1){
startvar=2;
start();
setTitle("Space Taxi");
}
// Exit Button Funktion
if(x>600 && x< 750 && y>300 && y<345 && startvar==1){
System.exit(0);
}
// Credits Button Funktion
if(x>600 && x< 750 && y>360 && y<405 && startvar==1){
startvar=3;
repaint();
setTitle("Credits");
}
// Von den Credits zurück zum Menue Button
if(x>600 && x< 750 && y>500 && y<600 && startvar==3){
startvar=1;
setTitle("UfoFrame");
repaint();
}
// Help
if(x>600 && x< 750 && y>250 && y<300 && startvar==1){
startvar=4;
setTitle("Help");
repaint();
}
if(x>560 && x<733 && y>600 && y<637 && startvar==4) {
startvar=1;
repaint();
}
// Help Menue Buttons Auslösung
if(x>600 && x< 750 && y>200 && y<250 && startvar==4){
aufloesungsvar=0;
}
if(x>600 && x< 750 && y>250 && y<300 && startvar==4){
aufloesungsvar=1;
}
}
public void mouseEntered(MouseEvent e)
{
System.out.println("User clicked mouse " + e.getClickCount() + " times!");
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
}
public void mouseMoved(MouseEvent e)
{
}
public void mouseDragged(MouseEvent e)
{
}
// Ende Ereignisprozeduren
public static void main(String[] args) {
new UfoFrame("UfoFrame");
}
// Ende Methoden
}
[/Java]
Und hier die Klasse soundLib (ja sry ist klein geschrieben
)
[Java]
import java.applet.*;
import java.net.*;
import java.util.*;
public class soundLib {
// Anfang Attribute
Hashtable<String, AudioClip> sounds;
Vector<AudioClip> loopingClips;
// Ende Attribute
public soundLib() {
sounds = new Hashtable<String, AudioClip>();
loopingClips = new Vector<AudioClip>();
}
// Anfang Methoden
public void loadSound(String name, String path) {
// Lädt den Sound
if (sounds.containsKey(name)) {
return;
}
URL sound_url = getClass().getClassLoader().getResource(path);
sounds.put(name, (AudioClip)Applet.newAudioClip(sound_url));
}
public void playSound(String name) {
// Spielt den Sound ab
AudioClip audio = sounds.get(name);
audio.play();
}
public void loopSound(String name) {
// Spielt sich wiederholende Sounds ab
AudioClip audio = sounds.get(name);
loopingClips.add(audio);
audio.loop();
}
public void stopLoopingSounds() {
// Stoppt sich wiederholende Sounds
for (AudioClip c:loopingClips) {
c.stop();
}
}
// Ende Methoden
}
[/Java]
Und nun wenn die Methode musik aufgerufen wird bekomme ich diese NullPointer:
Exception in thread "main" java.lang.NullPointerException
at sun.applet.AppletAudioClip.<init>(AppletAudioClip.java:48)
at java.applet.Applet.newAudioClip(Applet.java:279)
at soundLib.loadSound(soundLib.java:28)
at UfoFrame.<init>(UfoFrame.java:92)
at UfoFrame.main(UfoFrame.java:414)
Weiss jemand wo der Fehler liegt ???? Oder was ich anderes tuen kann... ich komm alleine nicht mehr weiter
!?!?!
Also ich habe eine Klasse (soundLib) geschrieben und in dieser sind Methoden zum Abspielen von Sounds und Loops etc....nun hab ich diese in meinen Frame benutzt um dort Sounds abzuspielen.
Code:
[Java]
import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Image;
public class UfoFrame extends Frame implements Runnable, KeyListener, MouseListener{
// Anfang Variablen
// Anfang Attribute
Ufo ufo; Plattform zielPlattform; Plattform2 plattform2; Alien alien; Map map; Baum baum;
Panel cp;
// Menue
Menue menue;
// Sound Library
soundLib slib;
boolean start=false;
// Spielthread
private Thread th;
private int speed=20;
// Variablen für die Doppelpufferung
private Image dbImage;
private Graphics dbg;
private boolean laufen=true;
private Button button2 = new Button();
private Button button1 = new Button();
// Startvar ist für das anzeigen der Menues da
public int startvar=0;
// Auflösungsvar ist zum ändern der Auflösung
public int aufloesungsvar=0;
// Bilder Importieren
Image img=getToolkit().getImage("pics/alienHintergrund.jpg");
Image img3=getToolkit().getImage("pics/alienHintergrundMenue.jpg");
Image img1=getToolkit().getImage("pics/buttonKleinBlau1.jpg");
Image img2=getToolkit().getImage("pics/buttonBlau2.jpg");
Image img4=getToolkit().getImage("pics/hintergrundStage-2.jpg");
Image img5=getToolkit().getImage("pics/levelPassedScreen.jpg");
Image img6=getToolkit().getImage("pics/creditsWallpaper.jpg");
Image img7=getToolkit().getImage("pics/buttonSchwarzCredits1.jpg");
Image img8=getToolkit().getImage("pics/helpWallpaper.jpg");
Image img9=getToolkit().getImage("pics/mond.gif");
Image img10=getToolkit().getImage("pics/GameEndWallpaper.jpg");
// Ende Attribute
// Ende Variablen
public UfoFrame(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { System.exit(0); }
});
int frameWidth = 1280;
int frameHeight = 670;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
//int x =50+ (d.width - getSize().width) / 2;
//int y =-50+ (d.height - getSize().height) / 2;
int y=10;
setLocation(0, y);
this.setLayout(null);
this.setBackground(Color.lightGray);
// Ende Komponenten
setResizable(false);
setVisible(true);
addKeyListener(this);
addMouseListener(this);
//add(cp);
ufo=new Ufo();
zielPlattform=new Plattform();
plattform2=new Plattform2();
ufo.setPlattform(zielPlattform);
alien=new Alien();
map=new Map();
baum=new Baum();
ufo.setAlien(alien);
menue=new Menue();
// Sounds
slib=new soundLib();
slib.loadSound("explosion","sounds/Explosion.wav");
slib.loadSound("titelsong","sounds/Limp Bizkit - Boiler.mp3");
// Sounds Ende
if (startvar==2 || startvar==6) {
start();
}
// Anfang Komponenten
}
// Anfang Methoden
public void start()
{
// Schaffen eines neuen Threads, in dem das Spiel läuft
th = new Thread(this);
// Starten des Threads
th.start ();
}
public void aufloesungAendern() {
if (startvar!=2 || aufloesungsvar==0) {
int frameWidth = 1280;
int frameHeight = 670;
}
if (startvar!=2 || aufloesungsvar==1) {
int frameWidth = 1650;
int frameHeight = 700;
}
if (startvar==2) {
int frameWidth = 1280;
int frameHeight = 670;
}
}
public void run()
{
if (startvar==2 || startvar==6) {
// Erniedrigen der ThreadPriority um zeichnen zu erleichtern
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
// Solange true ist läuft der Thread weiter
while (laufen){
try
{
if(ufo.zustand==0)
{
ufo.fliegen();
map.rauchBewegen();
map.wolkenBewegen1();
map.wolkenBewegen2();
update(getGraphics());
}
alien.laufen();
// Stoppen des Threads für in Klammern angegebene Millisekunden
Thread.sleep(speed);
}
catch (InterruptedException ex)
{
// do nothing
}
// Zurücksetzen der ThreadPriority auf Maximalwert
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
}
}
public void musik() {
if (startvar>0) {
slib.playSound("titelsong");
}
}
public void update (Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
// Initialisierung des DoubleBuffers
// Fehlermeldung bei Fehlenden Bildern
if (ClassLoader.getSystemResource("menueBackground")==null) {
System.out.println("Ressource nicht gefunden");
}
if (startvar==0) {
// Startbildschirm
g.drawImage(img,100,0,this);
}
if (startvar==1) {
// Hauptmenue
// Hauptmenue Wallpaper
g.drawImage(img8,0,0,this);
g.setColor(Color.gray);
g.fillRect(40,0,1200,700);
g.drawImage(img3,200,80,this);
g.drawImage(img1,590,200,this);
g.setColor(Color.green);
g.drawString("Start Game",640,225);
g.drawImage(img1,590,250,this);
g.setColor(Color.green);
g.drawString("Help",660,275);
g.drawImage(img1,590,300,this);
g.setColor(Color.green);
g.drawString("Exit",660,325);
g.drawImage(img1,590,350,this);
g.setColor(Color.green);
g.drawString("Credits",655,375);
g.setColor(Color.gray);
g.fillRect(575,450,200,80);
g.setColor(Color.BLACK);
g.drawString("Info",650,470);
g.drawString("Das ist Space Taxi V. 0.01",600,500);
g.drawString("Space Taxi V. 0.01",625,150);
}
if(startvar==2){
// Spiel
if (dbImage == null)
{
dbImage = createImage (this.getSize().width, this.getSize().height);
}
dbg = dbImage.getGraphics (); // <<<<<<<<<--------------------
// Bildschirm im Hintergrund löschen
dbg.setColor (getBackground ());
dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);
// Auf gelöschten Hintergrund Vordergrund zeichnen
dbg.setColor (getForeground());
// Nun fertig gezeichnetes Bild Offscreen auf dem richtigen Bildschirm anzeigen
map.umfeld(dbg);
map.wolken1(dbg);
map.wolken2(dbg);
map.rauch(dbg);
map.haus(dbg);
baum.baum1(dbg);
map.boum2(dbg);
ufo.zeichnen(dbg);
zielPlattform.zeichnenLevel(dbg);
alien.zeichnenAlien1(dbg);
g.drawImage (dbImage, 0, 0, this);
}
if (startvar==3) {
// Credits
g.drawImage(img6,0,0,this);
// Zurück Button
g.drawImage(img7,190,180,this);
g.drawImage(img1,600,550,this);
g.setColor(Color.black);
g.drawString("Zurück",640,570);
System.out.println("Credits");
menue.zeichneCredits(g);
}
if (startvar==4) {
// Help
// Help Wallpaper
g.drawImage(img8,0,0,this);
menue.zeichneHelp(g);
// Zurück Button
g.drawImage(img1,560,600,this);
g.setColor(Color.green);
g.drawString("Zurück",620,625);
}
if (startvar==5) {
// Stage 2 Screen
g.drawImage(img5,0,0,this);
g.drawImage(img2,500,150,this);
// Stage 2 Button
g.setColor(Color.black);
g.drawString("Stage 2",600,185);
}
if (startvar==6) {
ufo.setStage();
if (dbImage == null)
{
dbImage = createImage (this.getSize().width, this.getSize().height);
}
dbg = dbImage.getGraphics (); // <<<<<<<<<--------------------
// Bildschirm im Hintergrund löschen
dbg.setColor (getBackground ());
dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);
// Auf gelöschten Hintergrund Vordergrund zeichnen
dbg.setColor (getForeground());
// Hintergrund für Stage 2
dbg.drawImage(img4,0,0,this);
dbg.drawImage(img9,700,200,this);
ufo.zeichnen(dbg);
plattform2.zeichnenLevel(dbg);
alien.zeichnenAlien1(dbg);
g.drawImage (dbImage, 0, 0, this);
}
if (startvar==7) {
g.drawImage(img10,0,0,this);
}
}
public void keyPressed(KeyEvent e)
{
System.out.println("User pressed key " + e.getKeyCode());
if(e.getKeyCode()==37) ufo.schubRechts(getGraphics());
if(e.getKeyCode()==38) ufo.schubHoch(getGraphics());
if(e.getKeyCode()==39) ufo.schubLinks(getGraphics());
if(e.getKeyCode()==40) ufo.schubRunter(getGraphics());
// Zum Menue zurück
if(e.getKeyCode()==112) startvar=1;
// Zum Help Menu zurück
if(e.getKeyCode()==113) startvar=4;
// Programm Beenden
if(e.getKeyCode()==27) System.exit(0);
}
public void keyReleased(KeyEvent e)
{
System.out.println("User released key " + e.getKeyCode());
}
public void keyTyped(KeyEvent e)
{
System.out.println("User typed key " + e.getKeyCode());
}
public void mouseClicked(MouseEvent e)
{
int x=e.getX();
int y=e.getY();
System.out.println("Maus at "+x+" "+y);
// Stage Change
if(x>500 && x< 800 && y>450 && y<510 && startvar==2){
startvar=5;
setTitle("Stage Screen");
repaint();
}
// Stage 2 Menue Funktion
if (x<795 && x>520 && y<208 && y>149 && startvar==5) {
startvar=6;
repaint();
}
if(x>500 && x< 800 && y>450 && y<510 && startvar==6){
startvar=7;
setTitle("Game End Screen");
repaint();
}
// Startbutton Funktion
if (startvar==0) {
startvar=1;
repaint();
}
if(x>600 && x< 750 && y>200 && y<244 && startvar==1){
startvar=2;
start();
setTitle("Space Taxi");
}
// Exit Button Funktion
if(x>600 && x< 750 && y>300 && y<345 && startvar==1){
System.exit(0);
}
// Credits Button Funktion
if(x>600 && x< 750 && y>360 && y<405 && startvar==1){
startvar=3;
repaint();
setTitle("Credits");
}
// Von den Credits zurück zum Menue Button
if(x>600 && x< 750 && y>500 && y<600 && startvar==3){
startvar=1;
setTitle("UfoFrame");
repaint();
}
// Help
if(x>600 && x< 750 && y>250 && y<300 && startvar==1){
startvar=4;
setTitle("Help");
repaint();
}
if(x>560 && x<733 && y>600 && y<637 && startvar==4) {
startvar=1;
repaint();
}
// Help Menue Buttons Auslösung
if(x>600 && x< 750 && y>200 && y<250 && startvar==4){
aufloesungsvar=0;
}
if(x>600 && x< 750 && y>250 && y<300 && startvar==4){
aufloesungsvar=1;
}
}
public void mouseEntered(MouseEvent e)
{
System.out.println("User clicked mouse " + e.getClickCount() + " times!");
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
}
public void mouseMoved(MouseEvent e)
{
}
public void mouseDragged(MouseEvent e)
{
}
// Ende Ereignisprozeduren
public static void main(String[] args) {
new UfoFrame("UfoFrame");
}
// Ende Methoden
}
[/Java]
Und hier die Klasse soundLib (ja sry ist klein geschrieben
[Java]
import java.applet.*;
import java.net.*;
import java.util.*;
public class soundLib {
// Anfang Attribute
Hashtable<String, AudioClip> sounds;
Vector<AudioClip> loopingClips;
// Ende Attribute
public soundLib() {
sounds = new Hashtable<String, AudioClip>();
loopingClips = new Vector<AudioClip>();
}
// Anfang Methoden
public void loadSound(String name, String path) {
// Lädt den Sound
if (sounds.containsKey(name)) {
return;
}
URL sound_url = getClass().getClassLoader().getResource(path);
sounds.put(name, (AudioClip)Applet.newAudioClip(sound_url));
}
public void playSound(String name) {
// Spielt den Sound ab
AudioClip audio = sounds.get(name);
audio.play();
}
public void loopSound(String name) {
// Spielt sich wiederholende Sounds ab
AudioClip audio = sounds.get(name);
loopingClips.add(audio);
audio.loop();
}
public void stopLoopingSounds() {
// Stoppt sich wiederholende Sounds
for (AudioClip c:loopingClips) {
c.stop();
}
}
// Ende Methoden
}
[/Java]
Und nun wenn die Methode musik aufgerufen wird bekomme ich diese NullPointer:
Exception in thread "main" java.lang.NullPointerException
at sun.applet.AppletAudioClip.<init>(AppletAudioClip.java:48)
at java.applet.Applet.newAudioClip(Applet.java:279)
at soundLib.loadSound(soundLib.java:28)
at UfoFrame.<init>(UfoFrame.java:92)
at UfoFrame.main(UfoFrame.java:414)
Weiss jemand wo der Fehler liegt ???? Oder was ich anderes tuen kann... ich komm alleine nicht mehr weiter