Question

the sound i used doesn't play and it doesn't use the actionlistener.. i have the soundclip in wav and it is in the directory of the class.. please help me..i dont get what is the problem with my coding

public class Willy extends JApplet implements ActionListener
{/**
 * 
 */
    private static final long serialVersionUID = 1L;

    Button play,stop;
    Container pane=getContentPane();
    AudioClip audioClip;
    Date date = new Date();//new command 4
    Timer timer = new Timer (1000,this);
    int eye1=50,eye2=45,pupil=10;
    int r=255,g=255,b=255;
    Color white=new Color(255,255,255);
    Color black=new Color(0,0,0);
    JLabel label;


    public void paint(Graphics g)
    {
    setSize(1000,1000);
    setLayout(null);

        Graphics2D g2 = (Graphics2D) g;//new command 2
        g2.setStroke(new BasicStroke(6));

            g.drawOval(83,6,321,303);//outer head
            g.setColor(new Color(255,102,0));//orange
            g.fillOval(83,6,321,303);//outer head color
            g.setColor(Color.BLACK);//black
            g.drawLine(151,282,93,391);//left arm outer
            g.drawArc(93,350,60,80,180,125);//left hand arc
            g.drawLine(93,390,140,425);//left hand line
            g.drawLine(140,425,155,395);//left arm inside
            g.drawLine(335,282,365,391);//right arm outer
    g.drawOval(335,387,40,40);//right hand
    g.drawArc(335,390,20,20,35,-105);//right finger
    g.drawLine(336,415,325,385);//right arm inside
    g.drawLine(150,405,150,435);//left torso
    g.drawLine(330,400,330,435);//right torso
    g.drawLine(150,435,330,435);//bottom torso
    g.drawLine(240,435,240,410);//zipper
    g.drawLine(160,450,320,450);//bottom leg
    g.drawLine(160,435,160,450);//left leg
    g.drawLine(320,435,320,450);//right leg
    g.drawLine(160,450,150,465);//left foot
    g.drawLine(320,450,330,465);//right foot
    g.drawLine(150,465,330,465);//bottom foot
    g.drawOval(125,40,235,235);//inner head
    g.setColor(new Color(139,69,19));//brown
    g.fillOval(155,65,180,180);//smallest head color
    g.setColor(Color.BLACK);
    g.drawOval(155,65,180,180);//smallest head
    g.setColor(new Color(255,228,196));//hoodie hole color
    g.fillOval(195,65,100,180);//hoodie hole color
    g.setColor(Color.BLACK);
    g.drawOval(195,65,100,180);//hoodie hole
    g.setColor(Color.BLACK);
    g.drawOval(195,115,eye1,eye2);//left eye
    g.drawOval(245,115,eye1,eye2);//right eye
    g.setColor(white);
    g.fillOval(195,115,eye1,eye2);
    g.fillOval(245,115,eye1,eye2);
    g.setColor(black);
    g.fillOval(215,135,10,10);//left pupil color
    g.fillOval(265,135,10,10);//right pupil color
    g.drawOval(215,135,pupil,pupil);//left pupil
    g.drawOval(265,135,pupil,pupil);//right pupil

    Polygon x=new Polygon();//torso color  new command 1
    x.addPoint(151,182);
    x.addPoint(93,391);
    x.addPoint(140,425);
    x.addPoint(155,395);
    x.addPoint(150,405);
    x.addPoint(150,435);
    x.addPoint(330,435);
    x.addPoint(330,400);
    x.addPoint(325,385);
    x.addPoint(336,415);

    Polygon leg=new Polygon();
    leg.addPoint(150,435);
    leg.addPoint(330,435);
    leg.addPoint(330,450);
    leg.addPoint(160,450);
    leg.addPoint(160,435);

    Polygon q=new Polygon();
    q.addPoint(342,308);
    q.addPoint(335,282);
    q.addPoint(332,285);
    q.addPoint(329,288);
    q.addPoint(326,289);
    q.addPoint(323,291);
    q.addPoint(320,293);
    q.addPoint(318,294);
    q.addPoint(315,296);
    q.addPoint(313,297);
    q.addPoint(312,299);
    q.addPoint(310,299);
    q.addPoint(307,300);
    q.addPoint(303,301);
    q.addPoint(300,303);
    q.addPoint(294,305);
    q.addPoint(279,307);

    Polygon h=new Polygon();
    h.addPoint(336,415);
    h.addPoint(325,385);
    h.addPoint(325,415);

    Polygon t=new Polygon();
    t.addPoint(336,415);
    t.addPoint(310,365);
    t.addPoint(345,360);
    t.addPoint(342,315);
    t.addPoint(365,391);
    t.addPoint(361,388);
    t.addPoint(358,385);

    Polygon foot=new Polygon();
    foot.addPoint(320,450);
    foot.addPoint(330,465);
    foot.addPoint(150,465);
    foot.addPoint(160,450);

    g.setColor(Color.BLUE);

    g.setColor(new Color(255,102,0));
    g.fillPolygon(x);
    g.fillPolygon(t);
    g.fillRect(200,308,125,100);
    g.fillRect(220,308,122,70);
    g.fillPolygon(h);
    g.fillPolygon(q);
    g.fillPolygon(leg);
    g.setColor(new Color(139,69,19));
    g.fillOval(335,387,40,40);
    g.fillArc(93,350,60,80,180,125);
    g.fillPolygon(foot);

    // TUNOG

    play = new Button("  Play   ");

    //Set Location and Size
    play.setLocation(800, 200);
    play.setSize(50,50);
    //Add sa Applet para makita
    add(play);

    //Add Listener sa button para mag karoon sya ng saysay
    play.addActionListener(this);

    stop = new Button("  Stop  ");
    stop.setLocation(800, 250);
    stop.setSize(50,50);
    add(stop);
    stop.addActionListener(this);
    //audioClip = getAudioClip(getCodeBase(),"kenny_1.au");

}



public void actionPerformed(ActionEvent e)
{
     Button source = (Button)e.getSource();
      if (source.getLabel().equals("  Play   ")){
         audioClip.play();
         eye2=5;
         pupil=5;
         white=new Color(0,0,0);
         black=new Color(255,228,196);
         JOptionPane.showMessageDialog(null,date.toString());
         repaint();
      }
      else if(source.getLabel() .equals("  Stop  ")){
      audioClip.stop();
      eye2=50;
      pupil=10;
      white=new Color(255,255,255);
      black=new Color(0,0,0);
      repaint();//new command 3
      }

}

}

Was it helpful?

Solution

Your getCodeBase() checks in the Bin folder of your project. So make sure your file that you want to play is present in the Bin folder.

I tested it with the following code:

import java.applet.AudioClip;
import javax.swing.JApplet;

@SuppressWarnings("serial")
public class audioPlayer extends JApplet{

    AudioClip aClip;

    public void init(){
        System.out.print("Getting audio clip!");
        aClip = getAudioClip(getCodeBase(), "tetris.wav");
        System.out.print("Looping audio clip!");
        aClip.loop();
    }

}

The code above works perfectly fine and plays the sound perfectly.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top