[ aabst17 @ 25.02.2013. 16:34 ] @
Pozdrav svima!
Evo ovako ide prica, na faksu sam dobio zadatak za seminar da napravim aplikaciju koja treba reproducirati .mp3 file-ove...
Vecinu stvari sam napravio i mislim da su ok i da ok rade, stvar koja mi prestavlja problem je zvuk tj. komponenta za kontroliranje zvuka (JSlider)...(zvuk radi ali nemam mogucnost povecavanja i smanjivanja)
Novi sam u java programiranju i molim sve koji nesto znaju za pomoc...na netu ima nesto materijala i mislim da sam skuzio logiku kako bi to trebalo raditi, ali problem je implementacija pa eto molim ljude dobre volje za pomoc...
Trebala bi mi metoda za to osposobit...
Unaprijed Hvala!!!
evo i koda:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.filechooser.FileNameExtensionFilter;
import javazoom.jlgui.basicplayer.BasicPlayer;

public class gui1 {
public static BasicPlayer player;
private static JFrame frame,frame1;
private static JPanel field1 = new JPanel();
private static JPanel field2 = new JPanel();
private static JPanel field3 = new JPanel();
private static JLabel audio,fileName,volume,label,label1;
private static JButton bfile,bplay,bpause,bstop;
private static String fis,fis1;//varijable u koje spremaju putanja i ime datoteke
private static JSlider sliderzvuk;

public gui1() {
player = new BasicPlayer();
}
//Prozor za pretragu direktorija/datoteka
private static void openFile() throws Exception {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileFilter(new FileNameExtensionFilter("Files mp3","mp3"));//omogucava prikaz samo .mp3 datoteka
int result = fileChooser.showOpenDialog(bfile);
if ( result == JFileChooser.CANCEL_OPTION ){
fis=null;
fileName.setText("");
label.setText("");
label1.setText("");
Stop();
}
else
fis=fileChooser.getSelectedFile().getAbsolutePath();
fis1=fileChooser.getSelectedFile().getName();
label.setText("");
OpenFile(fis);
}

public static void OpenFile(String path) throws Exception {
player.open(new File(path));
}

public static void Play() throws Exception {
player.play();
}

public static void Pause() throws Exception {
player.pause();
}

public static void Resume() throws Exception {
player.resume();
}

public static void Stop() throws Exception {
player.stop();
}

//dodavanje komponenti u panel
private static void addComponentsToPane(Container pane) {

//prvi panel desni
pane.setLayout(new BorderLayout());
pane.add(field1,BorderLayout.EAST);

//JSlider za zvuk
field1.setLayout(new BoxLayout(field1,BoxLayout.Y_AXIS));
field1.setBackground(new Color(0x00FF00));
sliderzvuk = new JSlider(JSlider.VERTICAL,0,100,30); //JSlider za zvuk
sliderzvuk.setMajorTickSpacing(50);
sliderzvuk.setMinorTickSpacing(5);
sliderzvuk.setPaintTicks(true);
sliderzvuk.setPaintLabels(true);
sliderzvuk.setAlignmentX(Component.LEFT_ALIGNMENT);
sliderzvuk.setForeground(Color.BLACK);
sliderzvuk.setBackground(new Color(0x00FF00));
field1.add(sliderzvuk);

//labela u koju je postavljena slika zvucnika
ImageIcon zvucnik = new ImageIcon("C:\\Documents and Settings\\AAB\\My Documents\\My Pictures\\sound.png");
field1.add(new JLabel(zvucnik));

//listener za mijenjanje vrijednosti volumena
sliderzvuk.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent event){
volume.setText("Vol."+sliderzvuk.getValue()+" %");
}
});

//drugi panel sredina
pane.add(field2,BorderLayout.CENTER);
field2.setLayout(new GridBagLayout());
field2.setBackground(new Color(0x00FF00));
GridBagConstraints c = new GridBagConstraints();
audio = new JLabel();//labela audio prva u panelu u centru
audio.setText("<html>Audio File:</html>");
c.fill = GridBagConstraints.BOTH;
c.insets = new Insets(3,3,3,3);
c.weightx=0.1;
c.weighty=0.1;
c.gridwidth = 1;
c.gridheight = 1;
c.gridx = 0;
c.gridy = 0;
field2.add(audio,c);

fileName=new JLabel("");//labela u kojoj se pojavljue ime datoteke koja je odabrana, druga labela u panelu u centru
c.gridwidth = 5;
c.gridheight = 1;
c.gridx = 1;
c.gridy = 0;
field2.add(fileName,c);

//botun openFile koji otvara prozor za odabir datoteke
bfile = new JButton("File");
//bfile.setBackground(new Color(0x00FF00));
bfile.setBorder(null);
bfile.setToolTipText("Open file");
bfile.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try {
openFile();
fileName.setText(fis1);
label1.setText(fis1);
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
c.gridwidth = 1;
c.gridheight = 1;
c.gridx = 0;
c.gridy = 1;
field2.add(bfile,c);

//botun play koji pokrece player odnosno pjesmu
bplay = new JButton("play");
//bplay.setBackground(new Color(0x00FF00));
bplay.setBorder(null);
bplay.setToolTipText("Play");
bplay.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if (fis == null)
JOptionPane.showMessageDialog(null, "Molimo odaberite pjesmu","Error",JOptionPane.ERROR_MESSAGE);//pop up prozor koji pokazuje gresku ako nije odabrana pjesma
else
try {
Play();
Resume();
label.setText("Playing");
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
c.gridwidth = 1;
c.gridheight = 1;
c.gridx = 0;
c.gridy = 2;
field2.add(bplay,c);

//botun pauza koji zaustavlja pjesmu
bpause = new JButton("pause");
//bpause.setBackground(new Color(0x00FF00));
bpause.setBorder(null);
bpause.setToolTipText("Pause");
bpause.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if (fis == null)
label.setText("");
else
try {
Pause();
label.setText("Paused");
} catch(Exception e1)
{
System.out.println(e1);
}
}
});
c.gridwidth = 1;
c.gridheight = 1;
c.gridx = 1;
c.gridy = 2;
field2.add(bpause,c);

//botun stop koji zaustavlja player
bstop = new JButton("stop");
//bstop.setBackground(new Color(0x00FF00));
bstop.setBorder(null);
bstop.setToolTipText("Stop");
bstop.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if (fis == null)
label.setText("");
else
try {
Stop();
label.setText("Stop");
} catch(Exception e1)
{
System.out.println(e1);
}
}
});
c.gridwidth = 1;
c.gridheight = 1;
c.gridx = 2;
c.gridy = 2;
field2.add(bstop,c);

//treci panel dno
pane.add(field3,BorderLayout.SOUTH);
field3.setLayout(new GridBagLayout());
field3.setBackground(new Color(0x00FF00));
GridBagConstraints d = new GridBagConstraints();

//labela u koju se sprema stanje play,resume ili stop prikazuje se u lijevom kutu u dnu
label = new JLabel("",JLabel.LEFT);
d.fill=GridBagConstraints.BOTH;
d.weightx=0.1;
d.weighty=0.1;
d.gridwidth = 1;
d.gridheight = 1;
d.gridx = 0;
d.gridy = 0;
d.anchor= GridBagConstraints.FIRST_LINE_START;
field3.add(label,d);

//labela koja prikazuje ime datoteke koja je otvorena odnosno ona koja se reproducira (sredina,dno)
label1 = new JLabel("",JLabel.CENTER);
d.gridwidth = 2;
d.gridheight = 1;
d.gridx = 1;
d.gridy = 0;
d.anchor= GridBagConstraints.PAGE_START;
field3.add(label1,d);

//labela koja prizuje jacinu zvuka (desni kut,dno)
volume = new JLabel("Vol. 30%",JLabel.RIGHT);
d.gridwidth = 1;
d.gridheight = 1;
d.gridx = 3;
d.gridy = 0;
d.anchor= GridBagConstraints.FIRST_LINE_END;
field3.add(volume,d);

}
private static void createAndShowGUI() {
//kreiranje prozora
frame = new JFrame("JMusic Player");

//kreiranje menubar trake
JMenuBar menuTraka = new JMenuBar();
menuTraka.setOpaque(true);
menuTraka.setPreferredSize(new Dimension(200, 20));
frame.setJMenuBar(menuTraka);

//dodavanje komponente file na menubar traku
JMenu file = new JMenu ("File");
menuTraka.add(file);
JMenuItem item;

//stavka file koja poziva openFile odnosno otvara prozor za odabir datoteke
file.add (item = new JMenuItem("Open File"));
item.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try {
openFile();
fileName.setText(fis1);
label1.setText(fis1);
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
file.addSeparator();//crta za razdvajanje dviju komponenti u padajucem izborniku

//stavka koja zatvara prozor iz menubara
file.add (item = new JMenuItem("Close Window"));
item.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try {
Stop();
frame.dispose();
} catch (Exception e1) {
e1.printStackTrace();
}
}
});

//dodavanje komponente control na menu bar
JMenu player = new JMenu ("Control");
menuTraka.add(player);

//stavka play/resume koja pokrece pjesmu iz menubara
player.add (item = new JMenuItem("Play/Resume"));
item.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if (fis == null)
JOptionPane.showMessageDialog(null, "Molimo odaberite pjesmu","Error",JOptionPane.ERROR_MESSAGE);//pop up prozor koji pokazuje gresku ako nije odabrana pjesma
else
try {
Play();
Resume();
label.setText("Playing");
} catch (Exception e1) {
e1.printStackTrace();
}
}
});

//stavka pause koja zaustavlja pjesmu iz menubara
player.add (item = new JMenuItem("Pause"));
item.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if (fis == null)
label.setText("");
else
try {
Pause();
label.setText("Paused");
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
//stavka stop koja zaustavlja pjesmu iz menubara
player.add (item = new JMenuItem("Stop"));
item.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if (fis == null)
label.setText("");
else
try {
Stop();
label.setText("Stop");
} catch (Exception e1) {
e1.printStackTrace();
}
}
});

//dodavanje komponente Help na menubar traku
JMenu help = new JMenu ("Help");
menuTraka.add(help);
help.add (item = new JMenuItem("About JMusicPlayer"));
item.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try {
frame1.setVisible(true);
} catch (Exception e1) {
e1.printStackTrace();
}
}
});

//kreiranje frema koji sadrzi panel u kojem su osnovne inf. o JMUsic playeru
frame1 = new JFrame("About JMusicPlayer");
JPanel fr1=new JPanel();
fr1.setBackground(new Color(0x00FF00));
fr1.setLayout(new BorderLayout());

//labela u kojoj je ispisan tekst
JLabel f1 = new JLabel();
f1.setText("<html><p>JMusicPlayer je aplikacija koja je radjena za potrebe seminara tijekom kolegija" +
" Java programiranje, cilj seminara je bio napraviti aplikaciju" +
"koja omogucava reproduciranje .mp3 datoteka."</p></html>");
fr1.add(f1,BorderLayout.BEFORE_FIRST_LINE);

//botun koji zatvara prozor About JMusic playe
JButton zatvoriProzor = new JButton("Close");
zatvoriProzor.setBackground(new Color(0x00FF00));
zatvoriProzor.setBorder(null);
zatvoriProzor.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try {
frame1.dispose();
} catch(Exception e1)
{
System.out.println(e1);
}
}
});
fr1.add(zatvoriProzor,BorderLayout.AFTER_LINE_ENDS);

//postavja dodavanje komponenti na panel
addComponentsToPane(frame.getContentPane());

// postavke za prozor(sirina,visina,vidljivost)
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setSize(330, 200);
frame.setVisible(true);
frame.move(100, 100);//pomicanje prikaza prozora od gornjeg lijevog ugla

//postavke za drugi prozor(About JMusic)
frame1.getContentPane().add(fr1);
frame1.setSize(250,170);
frame1.move(300, 200);
}

public static void main(String[] args) throws Exception {
//pozivanje klase gui1
new gui1();
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}


[Ovu poruku je menjao aabst17 dana 25.02.2013. u 18:21 GMT+1]

[Ovu poruku je menjao aabst17 dana 25.02.2013. u 18:39 GMT+1]