Java ItemStateChanged

Java ItemStateChanged
M2
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:27
0

Witam,

Dlaczego ten kod nie działa?
Kod jest taki jak w tutorialach javy.

Kopiuj
JChceckBoxMenuItem cbRandom;

cbRandom = new JCheckBoxMenuItem("Odtwarzanie losowe");
        cbRandom.addItemListener(this);
        menu.add(cbRandom)

public void itemStateChanged(ItemEvent e) {
	JCheckBoxMenuItem sr = (JCheckBoxMenuItem)(e.getSource());
	if (sr == cbRandom){ //tutaj krzyczy Eclipse
	bar.setValue(45);
	}
init0
  • Rejestracja:prawie 12 lat
  • Ostatnio:19 dni
  • Lokalizacja:2 Sm 12
0

Bo to powinien być ActionListener albo changeListener

może dla przykładu:

Kopiuj
 
		final JCheckBoxMenuItem j = new JCheckBoxMenuItem();
		j.setText("TEST");
Kopiuj
j.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				j.setText("fdgfdg");
				
			}
		}); 

Raz przyszedł gość do bogacza
lecz jemu żal było brać coś z owiec i własnego bydła
czym mógłby posłużyć podróżnemu który do niego zawitał
Więc zabrał owieczkę owemu biednemu mężowi
i tę przygotował człowiekowi, co przybył do niego
edytowany 2x, ostatnio: init0
M2
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:27
0

zmieniłem ItemEvent na ActionEvent i dalej to samo

init0
  • Rejestracja:prawie 12 lat
  • Ostatnio:19 dni
  • Lokalizacja:2 Sm 12
0

chcesz uzyskać zmiane wartości bar poprzez zaznaczenie boxa?
dodaj sobie dla testu

Kopiuj
  	if(!j.getState()){
					j.setText("sddsds");
				}else{
					j.setText("sddsds nie");
				}

Chciałbym dodać że Eclipse ma opcje ctrl + spacja :)


Raz przyszedł gość do bogacza
lecz jemu żal było brać coś z owiec i własnego bydła
czym mógłby posłużyć podróżnemu który do niego zawitał
Więc zabrał owieczkę owemu biednemu mężowi
i tę przygotował człowiekowi, co przybył do niego
edytowany 2x, ostatnio: init0
M2
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:27
0

mam dwa check boxy w menu, jeden cbRound drugi cb Random,
w zależności od naciśniętego przycisku chcę modyfikować inny pasek

init0
  • Rejestracja:prawie 12 lat
  • Ostatnio:19 dni
  • Lokalizacja:2 Sm 12
0

a czy one są od siebie zależne? Jeden true to drugi false ?czy nie mają na siebie wpływu? napisze szybko sobie taki programik (chwilke to potrwa)


Raz przyszedł gość do bogacza
lecz jemu żal było brać coś z owiec i własnego bydła
czym mógłby posłużyć podróżnemu który do niego zawitał
Więc zabrał owieczkę owemu biednemu mężowi
i tę przygotował człowiekowi, co przybył do niego
edytowany 1x, ostatnio: init0
M2
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:27
0

są niezależne, ale mam jeszcze dodatkowo dwa przyciski które robią to samo co check box'y, nie wiem jak zrobić synchronizację pomiędzy przyciskiem a chceckbox'em

init0
  • Rejestracja:prawie 12 lat
  • Ostatnio:19 dni
  • Lokalizacja:2 Sm 12
1
Kopiuj
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.GroupLayout;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JToggleButton;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

/**
 * @author int0
 * 
 */
public class Test extends JFrame {

	public Test() {
		setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

		final JCheckBoxMenuItem j = new JCheckBoxMenuItem();
		final JCheckBoxMenuItem k = new JCheckBoxMenuItem();
		final JToggleButton uno = new JToggleButton("B1");
		final JToggleButton sec = new JToggleButton("B2");
		final JProgressBar bar = new JProgressBar();
		j.setText("TEST1");
		k.setText("TEST2");
		JPanel o = new JPanel();
		GroupLayout layout = new GroupLayout(getContentPane());

		layout.setHorizontalGroup(layout
				.createSequentialGroup()
				.addComponent(j)
				.addComponent(k)
				.addComponent(bar)
				.addGroup(
						layout.createParallelGroup(
								GroupLayout.Alignment.LEADING)
								.addComponent(uno).addComponent(sec)));
		layout.setVerticalGroup(layout
				.createSequentialGroup()
				.addGroup(
						layout.createParallelGroup(
								GroupLayout.Alignment.BASELINE).addComponent(j)
								.addComponent(k).addComponent(bar)
								.addComponent(uno)).addComponent(sec));
		setLayout(layout);
		add(o);
		pack();

		/*
		 * j.addActionListener(new ActionListener() {
		 * 
		 * public void actionPerformed(ActionEvent arg0) { if(!j.getState()){
		 * j.setText("sddsds"); bar.setValue(40); }else{
		 * j.setText("sddsds nie"); bar.setValue(0); }
		 * 
		 * } });
		 */
		j.addChangeListener(new ChangeListener() {

			@Override
			public void stateChanged(ChangeEvent arg0) {
				if (!j.getState()) {
					j.setText("sddsds");
					bar.setValue(40);
				} else {
					j.setText("sddsds nie");
					bar.setValue(0);
				}

			}
		});

		uno.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				if (!uno.isSelected()) {
					uno.setText("OFF");
					// bar.setValue(40);
					k.setSelected(false);
				} else {
					uno.setText("ON");
					// bar.setValue(0);
					k.setSelected(true);
				}

			}
		});
		sec.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent arg0) {
				if (!sec.isSelected()) {
					sec.setText("OFF");
					// bar.setValue(40);
					j.setSelected(false);
				} else {
					sec.setText("ON");
					// bar.setValue(0);
					j.setSelected(true);
				}

			}
		});
		k.addChangeListener(new ChangeListener() {

			@Override
			public void stateChanged(ChangeEvent arg0) {
				if (!k.getState()) {
					k.setText("Nie ma");
					bar.setStringPainted(false);
				} else {
					k.setText("jest");
					bar.setStringPainted(true);
				}

			}
		});

	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//
		new Test().setVisible(true);
	}

}

O to ci chodziło? oczywiście możesz jeszcze dodać że check boxy aktywują przycisk warto dodać że nie wszystkie zależności są spełnione odnośnie przycisków, jest tylko przykład.


Raz przyszedł gość do bogacza
lecz jemu żal było brać coś z owiec i własnego bydła
czym mógłby posłużyć podróżnemu który do niego zawitał
Więc zabrał owieczkę owemu biednemu mężowi
i tę przygotował człowiekowi, co przybył do niego
edytowany 2x, ostatnio: init0
M2
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:27
0

o to dzięki wielkie

Mam pytanie odnośnie Media Playera w javafx
Znalazłem w necie przykłady użycia ale ich nie rozumiem i jakieś błędy pojawiają się w Eclipsie.
Ładuję sobie pliki do tablicy File [], nie wiem jak się zabrać za odtwarzacz.
Wystarczy tylko jak odtwarzać plik, resztę sobie sam napiszę.

init0
  • Rejestracja:prawie 12 lat
  • Ostatnio:19 dni
  • Lokalizacja:2 Sm 12
0

Raz przyszedł gość do bogacza
lecz jemu żal było brać coś z owiec i własnego bydła
czym mógłby posłużyć podróżnemu który do niego zawitał
Więc zabrał owieczkę owemu biednemu mężowi
i tę przygotował człowiekowi, co przybył do niego
M2
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:27
0

widziałem to, problem w tym że jak sobie wkleję do kodu

Kopiuj
String bip = "bip.mp3";
Media hit = new Media(bip);
MediaPlayer mediaPlayer = new MediaPlayer(hit);
mediaPlayer.play();

to się nie chce kompilować
nie mam pojęcia dlaczego, bibliotekę ma poprawnie dołączoną

init0
  • Rejestracja:prawie 12 lat
  • Ostatnio:19 dni
  • Lokalizacja:2 Sm 12
0

a masz jmf?


Raz przyszedł gość do bogacza
lecz jemu żal było brać coś z owiec i własnego bydła
czym mógłby posłużyć podróżnemu który do niego zawitał
Więc zabrał owieczkę owemu biednemu mężowi
i tę przygotował człowiekowi, co przybył do niego
M2
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:27
0

mam to zaimportowane poprawnie w Eclipsie
import javafx.scene.media.*;
jeśli trzeba jeszcze coś dodać to proszę o wskazówki do Eclipsa

EDIT:
Wszytko co potrzebne mam bo znalazłem jeden program, który się kompiluje i normalnie odtwarza.
Niestety dalej nie rozumiem jak tego użyć

edytowany 1x, ostatnio: mariusz2108
init0
  • Rejestracja:prawie 12 lat
  • Ostatnio:19 dni
  • Lokalizacja:2 Sm 12
0

Ja normalnie pobrałem zainstalowałem i działa jak trzeba odtwarzanie, jak masz problem z użyciem?


Raz przyszedł gość do bogacza
lecz jemu żal było brać coś z owiec i własnego bydła
czym mógłby posłużyć podróżnemu który do niego zawitał
Więc zabrał owieczkę owemu biednemu mężowi
i tę przygotował człowiekowi, co przybył do niego
M2
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:27
0

napisałem sobie taką funkcję,

Kopiuj
wywołuję playSound(file); //file jest plikiem wczytanym przez file choosera


public void playSound(File file){
		String bip = file.getPath();
		Media hit = new Media(bip);
		MediaPlayer mediaPlayer = new MediaPlayer(hit);
		mediaPlayer.play();
	}

plik jest chyba dobrze wczytany bo jetem w stanie wyświetlić jego nazwę

init0
  • Rejestracja:prawie 12 lat
  • Ostatnio:19 dni
  • Lokalizacja:2 Sm 12
0

Coś nie działa czy jak, bo nie wiem teraz tak naprawdę w czym trzeba pomóc


Raz przyszedł gość do bogacza
lecz jemu żal było brać coś z owiec i własnego bydła
czym mógłby posłużyć podróżnemu który do niego zawitał
Więc zabrał owieczkę owemu biednemu mężowi
i tę przygotował człowiekowi, co przybył do niego
M2
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:27
0

no właśnie nie działa, nie mam pojęcia dlaczego
Plik file zadeklarowane globalnie.

tak ładuję plik mp3

Kopiuj
if(e.getActionCommand().equals("Open")){
			JFileChooser chooser = new JFileChooser();
		    FileNameExtensionFilter filter = new FileNameExtensionFilter("Tylko pliki MP3", "mp3");
		    chooser.setFileFilter(filter);
		    chooser.showOpenDialog(this);
		    	file = chooser.getSelectedFile();
		    
		}

coś takiego wyrzuca konsola

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: java.net.URISyntaxException: Illegal character in path at index 31: /Users/Mariusz/Music/Aleksandra Burke - Let It Go.mp3
at javafx.scene.media.Media.<init>(Media.java:359)
at MyFrame.playSound(MyFrame.java:295)
at MyFrame.actionPerformed(MyFrame.java:277)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:702)
at java.awt.EventQueue$4.run(EventQueue.java:700)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.net.URISyntaxException: Illegal character in path at index 31: /Users/Mariusz/Music/Aleksandra Burke - Let It Go.mp3
at java.net.URI$Parser.fail(URI.java:2829)
at java.net.URI$Parser.checkChars(URI.java:3002)
at java.net.URI$Parser.parseHierarchical(URI.java:3086)
at java.net.URI$Parser.parse(URI.java:3044)
at java.net.URI.<init>(URI.java:595)
at javafx.scene.media.Media.<init>(Media.java:357)

edytowany 1x, ostatnio: mariusz2108
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
1

Z czym masz problem? Z językiem angielskim, czy z liczeniem do 31? Spacja jest "nielegalna".


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
M2
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:27
0

wrzuciłem stare błędy przepraszam,
zmieniłem kod metody playSound()
ale wciąż mam jakieś błędy nie wiem dlaczego.

file.toPath() zwraca /Users/Mariusz/Music/Audio.mp3

Kopiuj
public void playSound(File file){
		String bip = file.toURI().toString();
		Media hit = new Media(bip);
		MediaPlayer mediaPlayer = new MediaPlayer(hit);
		mediaPlayer.play();
	
	}

Exception in thread "Thread-12" java.lang.IllegalStateException: Toolkit not initialized
	at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:155)
	at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:150)
	at javafx.application.Platform.runLater(Platform.java:52)
	at javafx.scene.media.Media$_MetadataListener.onMetadata(Media.java:499)
	at com.sun.media.jfxmediaimpl.MetadataParserImpl.done(MetadataParserImpl.java:158)
	at com.sun.media.jfxmediaimpl.platform.java.ID3MetadataParser.parse(ID3MetadataParser.java:270)
	at com.sun.media.jfxmediaimpl.MetadataParserImpl.run(MetadataParserImpl.java:141)
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Toolkit not initialized
	at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:155)
	at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:150)
	at javafx.application.Platform.runLater(Platform.java:52)
	at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:450)
	at javafx.scene.media.MediaPlayer.<init>(MediaPlayer.java:365)
	at MyFrame.playSound(MyFrame.java:300)
	at MyFrame.actionPerformed(MyFrame.java:281)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:688)
	at java.awt.EventQueue$3.run(EventQueue.java:686)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:702)
	at java.awt.EventQueue$4.run(EventQueue.java:700)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

__krzysiek85
  • Rejestracja:ponad 18 lat
  • Ostatnio:ponad 9 lat
  • Postów:1019
0

Pierwszy link po wpisaniu w google "java.lang.IllegalStateException: Toolkit not initialized at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:155)":

http://stackoverflow.com/questions/14025718/javafx-toolkit-not-initialized-when-trying-to-play-an-mp3-file-through-mediap


Registered Linux user #456405 | SCJP 6 | SCWCD 5 | SCBCD 5
M2
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:27
0

Czy jest jakiś sposób, aby zmodyfikować ten kod tak aby mógł odtwarzać MP3 przy użyciu javafx.
Chodzi mi o to że nie chce mi się pisać całego GUI od początku, bo jak rozumiem muszę mieć obiekt Scene
Bardzo proszę o pomoc, projekt mam na zaliczenie, a już dużo czasu mi nie zostało.

EDIT:
Trochę poskracałem kod, bardziej skrócić go nie potrafię.
Byłbym wdzięczny gdyby ktoś pomógł mi napisać metodę która będzie odtwarzała pliki MP3

Kopiuj
import javafx.scene.media.*;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.File;


public class MyFrame extends JFrame implements ActionListener{
	
	boolean ROUND = false;
	boolean RANDOM = false;
	
	void setRandom(){
		if (RANDOM == true){
			RANDOM = false;
		}
		else {RANDOM = true;}
	}
	void setRandom(boolean state){RANDOM = state;}
	void setRound(boolean state){ROUND = state;}
	void setRound(){
		if (ROUND == true){
			ROUND = false;
		}
		else {ROUND = true;}
	}

	boolean getRandom(){return RANDOM;}
	boolean getRound(){return ROUND;}
	
	final int SPACEX = 5;
	public File[] playlist;
	public File file;
	JButton [] button = new JButton [7];
	JProgressBar bar;
	JCheckBoxMenuItem cbRound, cbRandom;
	JMenuBar menuBar;
    JMenu menu1, menu2 ;
    JMenuItem [] menuItem = new JMenuItem [10];
    JLabel sliderLabel;
    JSlider volume;
    JPanel volume_panel;
    
	public MyFrame(){
		super("Odtwarzacz MP3");
		
		button [0] = new JButton(new ImageIcon("images/rewind.png"));
        button [0].setActionCommand("Prev");
        button [1] = new JButton(new ImageIcon("images/play.png"));
        button [1].setActionCommand("Play");
        button [2] = new JButton(new ImageIcon("images/pause.png"));
        button [2].setActionCommand("Pause");
        button [3] = new JButton(new ImageIcon("images/stop.png"));
        button [3].setActionCommand("Stop");
        button [4] = new JButton(new ImageIcon("images/forward.png"));
        button [4].setActionCommand("Next");
        button [5]= new JButton(new ImageIcon("images/random.png"));
        button [5].setActionCommand("Random");
        button [6] = new JButton(new ImageIcon("images/round.png"));
        button [6].setActionCommand("Round");
		
        sliderLabel = new JLabel("  Głośność  ", JLabel.CENTER);
        volume = new JSlider();
        volume.setValue(100);
        volume.setPreferredSize(new Dimension(230,20));
        volume_panel = new JPanel();
        volume_panel.add(sliderLabel);
        volume_panel.add(volume);
        volume_panel.setBackground( Color.WHITE );
        
        bar = new JProgressBar();
        bar.setValue(50);
        bar.setStringPainted(true);
        bar.setPreferredSize(new Dimension(350,20));
        bar.setString("Tutuł odtwarzanego utworu");
        
        menuItem [0] = new JMenuItem("Otwórz plik");
        menuItem [0].setActionCommand("Open");
        menuItem [0].setAccelerator(KeyStroke.getKeyStroke(
                KeyEvent.VK_O, ActionEvent.CTRL_MASK));
        
        menuItem [1]= new JMenuItem("Nowa playlista");
        menuItem [1].setActionCommand("New_Playlist");
        menuItem [1].setAccelerator(KeyStroke.getKeyStroke(
                KeyEvent.VK_N, ActionEvent.CTRL_MASK));

        menuItem [2]= new JMenuItem("Zakończ");
        menuItem [2].setActionCommand("Close");
        menuItem [2].setAccelerator(KeyStroke.getKeyStroke(
                KeyEvent.VK_4, ActionEvent.ALT_MASK));
        
        menuItem [3]= new JMenuItem("Odtwarzaj");
        menuItem [3].setActionCommand("Play");
        menuItem [3].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z, 0)); 
        
        menuItem [4]= new JMenuItem("Pauza");
        menuItem [4].setActionCommand("Pause");
        menuItem [4].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, 0)); 

        menuItem [5]= new JMenuItem("Stop");
        menuItem [5].setActionCommand("Stop");
        menuItem [5].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, 0)); 
        
        menuItem [6]= new JMenuItem("Następny");
        menuItem [6].setActionCommand("Next");
        menuItem [6].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, 0)); 
   
        menuItem [7]= new JMenuItem("Poprzedni");
        menuItem [7].setActionCommand("Prev");
        menuItem [7].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B, 0)); 
        
        cbRandom = new JCheckBoxMenuItem("Odtwarzanie losowe");
        cbRound = new JCheckBoxMenuItem("Zapętlanie");
        
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 200);
        setLocation(200,200);
        setLayout(new FlowLayout());
        setResizable(false);
        setVisible(true);
        getContentPane().setBackground( Color.WHITE );
        
        for (JButton b : button){
        	b.setBorder(BorderFactory.createEmptyBorder());
            b.setContentAreaFilled(false);
            b.addActionListener(this);
        }
        
        add(Box.createRigidArea(new Dimension(400,5))); 
        add(Box.createRigidArea(new Dimension(SPACEX,0)));
        add(button [0]);
        add(Box.createRigidArea(new Dimension(SPACEX,0)));
        add(button [1]);
        add(Box.createRigidArea(new Dimension(SPACEX,0)));
        add(button [2]);
        add(Box.createRigidArea(new Dimension(SPACEX,0)));
        add(button [3]);
        add(Box.createRigidArea(new Dimension(SPACEX,0)));
        add(button [4]);
        add(Box.createRigidArea(new Dimension(SPACEX-3,0)));
        add(button [5]);
        add(volume_panel);
        add(button [6]);
        add(bar);
  	
        //Tworzenie paska narzędzi
        menuBar = new JMenuBar();

        //Menu Plik
        menu1 = new JMenu("Plik");
        menuBar.add(menu1);  
        for (int i = 0 ; i<=2 ; i++){
        	menuItem [i].addActionListener(this);
        	menu1.add(menuItem [i]);
        	menu1.addSeparator();
        }
      //Menu Odtwarzanie.
        menu2 = new JMenu("Odtwarzanie");
        menuBar.add(menu2);
        for (int i = 3 ; i<=7 ; i++){
        	menuItem [i].addActionListener(this);
        	menu2.add(menuItem [i]);
        }
        menu2.addSeparator();
        menu2.add(cbRandom);
        menu2.add(cbRound);
       
        setJMenuBar(menuBar);
        cbRandom.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent e) {
                    if (!cbRandom.getState()) {
                        setRandom(false); 
                    } else {
                    	setRandom(true);
                    }

            }
        });
        
        cbRound.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent e) {
                    if (!cbRound.getState()) {
                        setRound(false); 
                    } else {
                    	setRound(true);
                    }

            }
        });
    }
	


	
	public void actionPerformed(ActionEvent e) {
		if(e.getActionCommand().equals("Close")) {
			System.exit(0);
		}
		if(e.getActionCommand().equals("Open")){
			JFileChooser chooser = new JFileChooser();
		    FileNameExtensionFilter filter = new FileNameExtensionFilter("Tylko pliki MP3", "mp3");
		    chooser.setFileFilter(filter);
		    chooser.showOpenDialog(this);
		    	file = chooser.getSelectedFile();
		    	System.out.println(file.getPath());
		    
		}
		if(e.getActionCommand().equals("New_Playlist"))  {
			JFileChooser chooser = new JFileChooser();
			chooser.setMultiSelectionEnabled(true);
			FileNameExtensionFilter filter = new FileNameExtensionFilter("Tylko pliki MP3", "mp3");
			chooser.setFileFilter(filter);
			chooser.showOpenDialog(MyFrame.this);
			playlist = chooser.getSelectedFiles();	
		}
		if(e.getActionCommand().equals("Play")) {
			bar.setString(file.getName().split(".mp3")[0]);
			System.out.println(file.getPath());
			playSound(file); 
		}
		if(e.getActionCommand().equals("Stop")) {
			bar.setString("Tytuł odtwarzanego utworu");
			
		}
		
		if(e.getActionCommand().equals("Random")) {
			setRandom();
			cbRandom.setSelected(getRandom());
		}
		if(e.getActionCommand().equals("Round")) {
			setRound();
			cbRound.setSelected(getRound());
		}
	}
	public void playSound(File file){
		
		String bip = file.toURI().toString();
		Media hit = new Media(bip);
		final MediaPlayer mediaPlayer = new MediaPlayer(hit);
		mediaPlayer.play();
		
	}
}




import java.awt.EventQueue;


public class Player {
	    public static void main(String[] args) {
	        EventQueue.invokeLater(new Runnable() {
	            @Override
	            public void run() {
	            	new MyFrame();
	            	   
	            }
	            
	        });
	    }
	}


edytowany 1x, ostatnio: mariusz2108
init0
na twoim miejscu zapoznałbym się z pętlami typu foreach oraz tablicami bo nieźle naciapałeś kodu który można ładnie i przejrzyście poskracać
init0
  • Rejestracja:prawie 12 lat
  • Ostatnio:19 dni
  • Lokalizacja:2 Sm 12
0
Kopiuj
 public void playSound(File file) throws NoPlayerException, IOException{
		 
		 MediaLocator ml = new MediaLocator(file.toURL());
		 Player p = Manager.createPlayer(ml);
		 p.start();

 }

i import jmf-a


Raz przyszedł gość do bogacza
lecz jemu żal było brać coś z owiec i własnego bydła
czym mógłby posłużyć podróżnemu który do niego zawitał
Więc zabrał owieczkę owemu biednemu mężowi
i tę przygotował człowiekowi, co przybył do niego
M2
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:27
0

pobrałem JMF cross-platform (używam mac'a) ze strony oracle
dodałem import javax.media.*;
dodałem build path w eclipsie

niestety nie działa.
eclipse podkreśla mi Manager.createPlayer(ml); chce rzutować to na Player, rzutowanie nie pomaga
podkreśla również p.start(); pisze że nie ma metody start w klasie Player

init0
  • Rejestracja:prawie 12 lat
  • Ostatnio:19 dni
  • Lokalizacja:2 Sm 12
0

Import całego folderu jmf-a, nie może nie działać ponieważ robiłem to u siebie i działa jak trzeba


Raz przyszedł gość do bogacza
lecz jemu żal było brać coś z owiec i własnego bydła
czym mógłby posłużyć podróżnemu który do niego zawitał
Więc zabrał owieczkę owemu biednemu mężowi
i tę przygotował człowiekowi, co przybył do niego
Madaoo
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad rok
  • Postów:490
0

"Chodzenie po wodzie i tworzenie oprogramowania wg specyfikacji są łatwe, o ile woda i specyfikacja są zamrożone" - Edward V. Berard
M2
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:27
0

czy w JMF masz plik sound.jar bo u mnie go nie ma, może dlatego nie działa

init0
Nie nie mam takiego pliku; costumizer, jmf, mediaplayer, multiplayer - te mam i działa
M2
mam te same i nie działa
M2
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:27
0

wyrzuca mi taki błąd:

Unable to handle format: mpeglayer3, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 16000.0 frame rate, FrameSize=32768 bits
Failed to realize: com.sun.media.PlaybackEngine@7e26f5a7
Error: Unable to realize com.sun.media.PlaybackEngine@7e26f5a7

Madaoo
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad rok
  • Postów:490
0

Hmmm wygląda na brak pluginu MP3 - sciągnij :
http://www.oracle.com/technetwork/java/javase/download-137625.html

Oczywiście napisz czy to coś dało.


"Chodzenie po wodzie i tworzenie oprogramowania wg specyfikacji są łatwe, o ile woda i specyfikacja są zamrożone" - Edward V. Berard
edytowany 1x, ostatnio: Madaoo
M2
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:27
0

po kliknięciu download
pojawia się http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-client-419417.html#javamp3-1_0-oth-JPR
a tam nie ma nic z pluginem MP3
JMF pobrałem wcześniej

Madaoo
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad rok
  • Postów:490
0

A dodaj do Eclipse mp3plugin.jar - powinien ten plik byc


"Chodzenie po wodzie i tworzenie oprogramowania wg specyfikacji są łatwe, o ile woda i specyfikacja są zamrożone" - Edward V. Berard

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.