.Wav Datei vor main-Methode abspielen?

PaddyFH

Mitglied
Ich will, dass eine WAV-Datei abgespielt wird, wenn, zum Beispiel "playerProbability" eins ist. Jedoch müsste ich dies vor der main-Methode machen, oder? Tut mir leid, wenn ich heute auf dem Schlauch stehe und die Lösung eigentlich einfach wäre😀 Hier noch der Code:

Java:
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyEvent;

    import javax.swing.AbstractAction;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JComponent;
    import javax.swing.JFrame;
    import javax.swing.KeyStroke;

    public class Grafik extends JFrame implements ActionListener {

    private JButton button;

       public Grafik() {
           getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
                   KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "Cancel");
               getRootPane().getActionMap().put("Cancel", new AbstractAction(){
                   public void actionPerformed(ActionEvent e)
                   {
                       dispose();
                   }
               });
           button = new JButton();
           button.addActionListener(this);
           button.setIcon(new ImageIcon("image.jpg"));

           this.getContentPane().add(button);

       }
       public void actionPerformed(ActionEvent e) {
           if(e.getSource() == button){
               int playerProbability =(int)(Math.random()*5+1);
               if (playerProbability == 1 ) {
                   System.out.println("text");
                   //sound
               }  
               else {
                   System.out.println("text");
                   //sound
                   int computerProbability =(int)(Math.random()*5+1);
                       if (computerProbability == 1) {
                           System.out.println("text");
                           //sound
                       }
                       else {
                           System.out.println("text");
                           //sound
                       }
               }
           }
       }
       public static void main(String[] args) {
           JFrame bec = new Grafik();
           bec.setDefaultCloseOperation(Grafik.EXIT_ON_CLOSE);
           bec.setSize(634, 634);
           bec.setVisible(true);
           bec.setTitle("title");
           bec.requestFocus();
      }
    }
Danke für die Hilfe!
 
Zuletzt bearbeitet von einem Moderator:
Ein static block wird vor der main Methode ausgeführt, vielleicht hilft es dir ja weiter.

Java:
static {
// hier die Musik abspielen
}
 
Zuletzt bearbeitet:
Ein static block wird vor der main Methode ausgeführt, vielleicht hilft es dir ja weiter.
Bitte nicht...


Ich will, dass eine WAV-Datei abgespielt wird, wenn, zum Beispiel "playerProbability" eins ist. Jedoch müsste ich dies vor der main-Methode machen, oder? Tut mir leid, wenn ich heute auf dem Schlauch stehe und die Lösung eigentlich einfach wäre😀 Hier noch der Code:
Die main-Methode ist der Start deines Programms, ein "davor" solltest du einfach als nicht existent ansehen.
Die Variable playerProbability gibt es auch nur in der einen Methode - außerhalb existiert sie einfach nicht. Wenn das abspielen abhängig von dieser ist, dann muss es in der Methode passieren (oder mindestens danach, damit du den Wert passend weitergeben kannst).
Die entsprechenden Stellen hast du ja schon markiert, dort musst du dann einfach noch den Sound abspielen. "vor der main-Methode" ist da aber nichts bei.
 
Ja stimmt. Ich verstehe den Sinn davon auch nicht, die Musik vor der main Methode abzuspielen.
Ich finde es an sich natürlich auch nicht gut/ praktisch, aber da der Sound von der Initalisierung der Klasse abhängig ist, und ich die main Methode natürlich nicht davor setzen kann versuche ich den Sound dort abzuspielen. Oder brauch ich einen ganz anderen Ansatz?
 

Neue Themen


Zurück
Oben