import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.applet.*;
import javax.media.*;
import javax.media.Manager.*;
import java.lang.Object.*;
import java.net.URL;
import java.io.File;
import javax.swing.JFileChooser;
import java.util.*;
import java.io.*;
public class player extends Frame implements ActionListener, AdjustmentListener, ChangeListener, ControllerListener
{
//Erschaffen der Objekte
Player player;
float volume2 = 0.3F;
String dir,file = null;
JButton play = new JButton("Play");
JButton pause = new JButton("Pause");
JButton stop = new JButton("Stop");
JButton open = new JButton("Open");
JLabel track = new JLabel("Track");
JLabel time = new JLabel("Time");
JScrollBar zoom = new JScrollBar( JScrollBar.HORIZONTAL,0,1,0,255 );
JSlider volume = new JSlider(JSlider.VERTICAL, 0, 100, 50);
//Konstruktor der Klasse
public player()
{
//Methode zum Schließen des Fensters
addWindowListener
(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dispose();
System.exit(0);
}
}
);
// Objekte in Container plazieren
setLayout(null);
add(track); track.setFont(new Font("Arial", Font.BOLD,10)); track.setBounds(20,110,200,10);
add(time); time.setFont(new Font("Arial", Font.BOLD,10)); time.setBounds(220,110,40,10);
add(play); play.setFont(new Font("Arial", Font.BOLD,10)); play.setBounds(10,145,70,30);
add(pause); pause.setFont(new Font("Arial", Font.BOLD,10)); pause.setBounds(90,145,70,30);
add(stop); stop.setFont(new Font("Arial", Font.BOLD,10)); stop.setBounds(170,145,70,30);
add(open); open.setFont(new Font("Arial", Font.BOLD,10)); open.setBounds(350,110,70,30);
add(zoom); zoom.setBounds( 20,125,200,15 );
add(volume); volume.setBounds( 280,110,30,70);
zoom.addAdjustmentListener( this );
play.addActionListener(this);
pause.addActionListener(this);
stop.addActionListener(this);
open.addActionListener(this);
volume.addChangeListener(this);
//volume.setPaintLabels(true);
volume.setMajorTickSpacing(20);
volume.setMinorTickSpacing(10);
volume.setPaintTicks(true);
}
//Methode(n) zur Auswertung der Ereignisse
public void actionPerformed(ActionEvent e)
{
///////////Datei öffnen
if (e.getSource().equals(open))
{
FileDialog fd = new FileDialog (this, "Open File",
FileDialog.LOAD);
fd.show ();
track.setText(fd.getFile ());
dir = fd.getDirectory();
file = fd.getFile();
if(player != null && file != null) player.stop();
try
{
player = Manager.createPlayer (new MediaLocator("file:" + dir + file));
}
catch (java.io.IOException e2)
{
System.out.println (e2);
return;
}
catch (NoPlayerException e2)
{
System.out.println ("Could not find a player.");
return;
}
if (player == null)
{
System.out.println ("Trouble creating a player.");
return;
}
setTitle (fd.getFile ());
player.addControllerListener (this);
player.prefetch ();
}
/////////Datei öffnen Ende
////////Wiedergabe starten///////
if (e.getSource().equals(play))
{
if(player != null) player.start();
}
if (e.getSource().equals(pause))
{
if(player != null) player.stop();
}
if (e.getSource().equals(stop))
{
if(player != null && file != null){
player.stop();
try
{
player = Manager.createPlayer (new MediaLocator("file:" + dir + file));
}
catch (java.io.IOException e2)
{
System.out.println (e2);
return;
}
catch (NoPlayerException e2)
{
System.out.println ("Could not find a player.");
return;
}
if (player == null)
{
System.out.println ("Trouble creating a player.");
return;
}
setTitle (file);
player.addControllerListener (this);
player.prefetch ();
}
}
}
public void adjustmentValueChanged( AdjustmentEvent e )
{}
public void controllerUpdate (ControllerEvent e)
{
}
public void stateChanged(ChangeEvent e) {
player.getGainControl().setLevel((float)volume.getValue()/100f);
}
//Aufrufen der Startmethode main
public static void main(String args[])
{
// Erzeugen der Instanz der Konstruktorklasse
player z = new player();
// Groesse der Anwendung
z.setSize(400,400);
// Sichtbarkeit
z.setVisible(true);
// Titel hinzufügen
z.setTitle("Wer das liest, ist doof!");
}
}