Hallo,
Ich habe diesmal Folgendes Problem:
Ich Spiele einen Sound ab, Und wenn ich dann mein Program wweiter nutzen will oder Schliessen will, ist es wie Tot. Weder Schliessen noch meine MenuBar funktionieren, und das Label, dass ich während der Sound abgespielt wird anzeigen lassen will, wir auch nicht angezeigt. Ich habe ein vermutung woran es liegen könnte, vielleicht dass der Sound nicht mehr geschlossen wird am ende, allerdings habe ich keine lösung wie ich das machen soll, und ie Google beispiele haben mir nur Fehlermeldungen gebracht.
Hier ist noch mein Code
Klasse Class:
Klasse Main:
Ich habe diesmal Folgendes Problem:
Ich Spiele einen Sound ab, Und wenn ich dann mein Program wweiter nutzen will oder Schliessen will, ist es wie Tot. Weder Schliessen noch meine MenuBar funktionieren, und das Label, dass ich während der Sound abgespielt wird anzeigen lassen will, wir auch nicht angezeigt. Ich habe ein vermutung woran es liegen könnte, vielleicht dass der Sound nicht mehr geschlossen wird am ende, allerdings habe ich keine lösung wie ich das machen soll, und ie Google beispiele haben mir nur Fehlermeldungen gebracht.
Hier ist noch mein Code
Klasse Class:
Java:
package pack;
import java.applet.Applet;
import java.applet.AudioClip;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.MalformedURLException;
import java.net.URL;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.filechooser.FileNameExtensionFilter;
public class Class extends Thread {
static Clip clip;
@SuppressWarnings("deprecation")
public static void Run() {
JFileChooser fileChooser = new JFileChooser();;
FileNameExtensionFilter filter = new FileNameExtensionFilter("Wellenform Audio (.WAV)", "wav");
FileNameExtensionFilter filter2 = new FileNameExtensionFilter("AIFF Dateien (.AIFF)", "aiff");
FileNameExtensionFilter filter3 = new FileNameExtensionFilter("AU Dateien (.AU)", "au");
FileNameExtensionFilter filter4 = new FileNameExtensionFilter("SND Dateien (.SND)", "snd");
FileNameExtensionFilter filter5 = new FileNameExtensionFilter("MIDI Dateien (.MID)", "mid");
fileChooser.removeChoosableFileFilter(fileChooser.getAcceptAllFileFilter());
fileChooser.addChoosableFileFilter(filter);
fileChooser.addChoosableFileFilter(filter2);
fileChooser.addChoosableFileFilter(filter3);
fileChooser.addChoosableFileFilter(filter4);
fileChooser.addChoosableFileFilter(filter5);
int returnValue = fileChooser.showOpenDialog(null);
if (returnValue == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
PrintWriter writer = null;
try {
File targetFile = new File(selectedFile, "");
URL url = null;
try {
url = new File(""+ targetFile).toURI().toURL();
} catch (MalformedURLException e) {
e.printStackTrace();
return;
}
AudioClip clip = Applet.newAudioClip(url);
System.out.println("es sollte funktionieren");
clip.play();
try {
Thread.sleep(600000);
} catch (InterruptedException e) {
JFrame frame = new JFrame();
frame.setSize(200,200);
JLabel label =new JLabel("Ein Problem ist aufgetreten");
frame.add(label);
frame.setVisible(true);
}
System.out.println(targetFile);
}
finally {
if (writer != null) {
writer.flush();
writer.close();
}
}
}
}
}
Klasse Main:
Java:
package pack;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
frame.setTitle("Frame");
setUp(frame);
frame.setMinimumSize(new Dimension(400,400));
}
private static void setUp(JFrame frame) {
JPanel content = new JPanel();
JMenuBar menubar = new JMenuBar();
JMenu Datei = new JMenu( "Datei" );
JMenuItem öffnen = new JMenuItem("Öffnen");
öffnen.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Class.Run();
JLabel label = new JLabel("wird wiedergegeben........");
content.add(label);
}
});
Datei.add(öffnen);
menubar.add(Datei);
frame.setJMenuBar(menubar);
frame.setContentPane(content);
content.revalidate();
content.repaint();
}
}