⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 musicframe.java

📁 图书管理系统:用户管理
💻 JAVA
字号:

import javax.swing.*;
import java.util.*;
import java.awt.event.*;
import java.net.*;
import java.applet.*;
import java.awt.*;
import java.io.*;
public class MusicFrame extends JFrame implements ActionListener{
	static final long serialVersionUID=80;
	JList list;
	Hashtable table;
	JButton playbutton,stopbutton,loopbutton,addbutton,delbutton;
	JScrollPane pane;
	URL url;
	JPanel panel;
	AudioClip audio,current;
	Container container;
	Dimension screenSize;
	Toolkit tool;
    MouseListener mouse;
    JFileChooser chooser;
    Image image;
	String[] music={"Letting You Go","don not cry","Years","A Minor Exercise","Single String Doria","Ain't It Fun","Ain't my bitch","Aminor Tapping Exercise","Amorphi","Extreme Dream"};
	MusicFrame(String title){
		super(title);
		tool=getToolkit();
		screenSize=tool.getScreenSize();
		container=getContentPane();
		container.setBackground(Color.ORANGE);
		setResizable(false);
		setSize(300,200);
		URL url=getClass().getResource("/images/music.gif");
		if(url!=null){
			image=tool.getImage(url);
			setIconImage(image);
		}
		list=new JList(music);
		chooser=new JFileChooser();
		chooser.setMultiSelectionEnabled(true);
		pane=new JScrollPane(list);
		panel=new JPanel(new GridLayout(5,1));
		panel.setBackground(Color.ORANGE);
		playbutton=new JButton("play");
		stopbutton=new JButton("stop");
		stopbutton.setEnabled(false);
		loopbutton=new JButton("loop");
		addbutton=new JButton("add");
		delbutton=new JButton("delete");
		panel.add(playbutton);
		panel.add(stopbutton);
		panel.add(loopbutton);
		panel.add(addbutton);
		panel.add(delbutton);
		playbutton.addActionListener(this);
		stopbutton.addActionListener(this);
		loopbutton.addActionListener(this);
		addbutton.addActionListener(this);
		delbutton.addActionListener(this);
		table=new Hashtable();
		mouse = new MouseAdapter() {
		     public void mouseClicked(MouseEvent e) {
		         if (e.getClickCount() == 2) {
		             int index = list.locationToIndex(e.getPoint());
		             if(current!=null){
		            	 current.stop();
		             }
		             current=(AudioClip)table.get(music[index]);
		             if(current!=null){
		            	 current.play();
		             }
		             else{
		            	 setTitle("无法播放"+music[index]);
		            	 return;
		             }
		             stopbutton.setEnabled(true);
		             setTitle("正在播放"+music[index]);
		          }
		     }
		 };
        list.addMouseListener(mouse);
		for(int i=0;i<music.length;i++){
			url=getClass().getResource("/music/"+music[i]+".mid");
			if(url!=null){
				audio=Applet.newAudioClip(url);
				table.put(music[i],audio);
			}
		}
		container.add(pane,BorderLayout.CENTER);
		container.add(panel,BorderLayout.EAST);
		setLocation((screenSize.width-getSize().width)/2,(screenSize.height-getSize().height)/2);
		addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				setVisible(false);
				
			}
		});
	}
	public void actionPerformed(ActionEvent e){
		if(e.getSource()==playbutton){
			if(list.getSelectedIndices().length==1){
				if(current!=null){
					current.stop();
				}
				current=(AudioClip)table.get(music[list.getSelectedIndex()]);
				if(current!=null){
					current.play();
				}
				else{
					setTitle("无法播放"+music[list.getSelectedIndex()]);
					return;
				}
				stopbutton.setEnabled(true);
				setTitle("正在播放"+music[list.getSelectedIndex()]);
			}
		}
		else if(e.getSource()==loopbutton){
			if(list.getSelectedIndices().length==1){
				if(current!=null){
					current.stop();
				}
				current=(AudioClip)table.get(music[list.getSelectedIndex()]);
				if(current!=null){
					current.loop();
				}
				else{
					setTitle("无法播放"+music[list.getSelectedIndex()]);
					return;
				}
				setTitle("正在循环播放"+music[list.getSelectedIndex()]);
				stopbutton.setEnabled(true);
			}
		}
		else if(e.getSource()==stopbutton){
			if(current!=null){
				current.stop();
				current=null;
				playbutton.setEnabled(true);
				loopbutton.setEnabled(true);
				stopbutton.setEnabled(false);
				setTitle("音乐无限");
			}
		}
		else if(e.getSource()==addbutton){
			int state=chooser.showOpenDialog(this);
			File[] file=chooser.getSelectedFiles();
			if(file!=null&&state==JFileChooser.APPROVE_OPTION){
				container.remove(pane);
				String[] temp=music;
				music=new String[file.length+music.length];
				for(int i=0;i<music.length;i++){
					if(i<temp.length){
						music[i]=temp[i];
					}
					else{
						music[i]=file[i-temp.length].getName();
						try{
							url=file[i-temp.length].toURL();
						}
						catch(MalformedURLException e2){
							System.err.print(e2);
						}
						audio=Applet.newAudioClip(url);
						table.put(music[i],audio);
					}
				}
				list=new JList(music);
				list.addMouseListener(mouse);
				pane=new JScrollPane(list);
				container.add(pane,BorderLayout.CENTER);
				validate();
			}
			else{
				System.out.print("fsfsdf");
			}
		}
		else{
			int[] n=list.getSelectedIndices();
			if(n!=null){
				String[] temp=music;
				for(int i=0;i<n.length;i++){
					table.remove(temp[n[i]]);
					temp[n[i]]=null;
				}
				music=new String[music.length-n.length];
				int j=0;
				for(int i=0;i<music.length;i++){
					while(temp[j]==null){
						j++;
					}
					music[i]=temp[j];
					j++;
				}
				pane.remove(list);
				container.remove(pane);
				list=new JList(music);
				list.addMouseListener(mouse);
				pane=new JScrollPane(list);
				container.add(pane,BorderLayout.CENTER);
				validate();
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -