java学习(给对象制作的简单的有背景音乐的电子相册)

来源:互联网 发布:运维java中间件有哪些 编辑:程序博客网 时间:2024/05/18 00:54
package com.wx2015210;


import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.sql.Time;


import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.EndOfMediaEvent;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.media.PrefetchCompleteEvent;
import javax.media.RealizeCompleteEvent;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.Line.Info;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JSplitPane;


public class Stu_manage extends JFrame implements MouseListener,ActionListener{


/**
* @param args
*/
//定义组件
JSplitPane jsp=null;
JPanel jp_right,jp_left,jp_right_1,jp_right_2,jp_right_3,jp_right_4,jp_right_5,jp_right_6,jp_right_7,jp_right_8
,jp_right_9,jp_right_10,jp_right_11;
JMenuBar jmb;
JMenu jm1,jm2,jm3;

JMenuItem jmi1,jmi2,jmi3,jmi4,jmi5,jmi6,jmi7,jmi8;
CardLayout c1=new CardLayout();
private Player player;
private Component visual;
private Component control=null;

public static void main(String[] args) {
// TODO Auto-generated method stub
Stu_manage stu_manage=new Stu_manage();
Thread t1=new Thread(new Music());
t1.run();
}
public Stu_manage(){
//定义组件
jp_left=new JPanel(new GridLayout(1, 1));
jmb=new JMenuBar();

jm1=new JMenu("2012");
jm1.setFont(new Font("宋体",Font.PLAIN,40));
jm1.addMouseListener(this);
jm2=new JMenu("2013");
jm2.setFont(new Font("宋体",Font.PLAIN,40));
jm2.addMouseListener(this);
jm3=new JMenu("2014");
jm3.setFont(new Font("宋体",Font.PLAIN,40));
jm3.addMouseListener(this);

jmb.add(jm1);
jmb.add(jm2);
jmb.add(jm3);

jmi1=new JMenuItem("和你的小伙伴一起ktv");
jmi1.addActionListener(this);
jmi1.setActionCommand("4");
jmi2=new JMenuItem("一起在旺德福的日子");
jmi2.addActionListener(this);
jmi2.setActionCommand("5");
jmi3=new JMenuItem("带你去上海的日子");
jmi3.addActionListener(this);
jmi3.setActionCommand("6");
jmi4=new JMenuItem("新婚照~青涩的酿子");
jmi4.addActionListener(this);
jmi4.setActionCommand("7");
jmi5=new JMenuItem("咸鱼子来北京,你在花里~");
jmi5.addActionListener(this);
jmi5.setActionCommand("8");
jmi6=new JMenuItem("我们开始成长,我开始勇敢辩论");
jmi6.addActionListener(this);
jmi6.setActionCommand("9");
jmi7=new JMenuItem("开始爱生活,爱健身");
jmi7.addActionListener(this);
jmi7.setActionCommand("a");
jmi8=new JMenuItem("我们拍了一张幸福的全家福,满满的成长和回忆");
jmi8.addActionListener(this);
jmi8.setActionCommand("b");

jm1.add(jmi1);
jm1.add(jmi2);
jm1.addMouseListener(this);

jm2.add(jmi3);
jm2.add(jmi4);
jm2.add(jmi5);
jm2.addMouseListener(this);

jm3.add(jmi6);
jm3.add(jmi7);
jm3.add(jmi8);
jm3.addMouseListener(this);

jp_left.add(jmb);



//右边面板
jp_right=new JPanel(c1);
jp_right_1=new JPanel();
//jp_right_1.setBackground(Color.BLACK);
jp_right_1.add(new JLabel(new ImageIcon("4.gif")));
jp_right_1.setBackground(Color.PINK);
jp_right_2=new JPanel();
jp_right_2.setBackground(Color.PINK);
jp_right_2.add(new JLabel(new ImageIcon("adai.jpg")));
jp_right_3=new JPanel();
jp_right_3.setBackground(Color.PINK);
jp_right_3.add(new JLabel(new ImageIcon("bdha.jpg")));
jp_right_4=new JPanel();
jp_right_4.setBackground(Color.PINK);
jp_right_4.add(new JLabel(new ImageIcon("ktv.jpg")));
jp_right_5=new JPanel();
jp_right_5.add(new JLabel(new ImageIcon("wdf.jpg")));
jp_right_5.setBackground(Color.PINK);
jp_right_6=new JPanel();
jp_right_6.setBackground(Color.PINK);
jp_right_6.add(new JLabel(new ImageIcon("shanghai.jpg")));
jp_right_7=new JPanel();
jp_right_7.setBackground(Color.PINK);
jp_right_7.add(new JLabel(new ImageIcon("sh.jpg")));
jp_right_8=new JPanel();
jp_right_8.setBackground(Color.PINK);
jp_right_8.add(new JLabel(new ImageIcon("huahua.jpg")));
jp_right_9=new JPanel();
jp_right_9.add(new JLabel(new ImageIcon("bl.jpg")));
jp_right_9.setBackground(Color.PINK);
jp_right_10=new JPanel();
jp_right_10.setBackground(Color.PINK);
jp_right_10.add(new JLabel(new ImageIcon("js.jpg")));
jp_right_11=new JPanel();
jp_right_11.setBackground(Color.PINK);
jp_right_11.add(new JLabel(new ImageIcon("honey.jpg")));


jp_right.add("1", jp_right_1);
jp_right.add("2",jp_right_2);
jp_right.add("3",jp_right_3);
jp_right.add("4",jp_right_4);
jp_right.add("5", jp_right_5);
jp_right.add("6",jp_right_6);
jp_right.add("7",jp_right_7);
jp_right.add("8",jp_right_8);
jp_right.add("9", jp_right_9);
jp_right.add("a",jp_right_10);
jp_right.add("b",jp_right_11);
c1.show(jp_right, "1");

jsp=new JSplitPane(JSplitPane.VERTICAL_SPLIT, jp_left, jp_right);
jsp.setDividerLocation(70);
jsp.setDividerSize(0);


this.add(jsp);
this.setTitle("你我的电子相册(爱的回忆)");

this.setIconImage((new ImageIcon("aixin.jpg")).getImage());
this.setSize(1000,700);
this.setLocation(150, 0);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}



@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub

}

@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub

}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub

}

@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub

if(e.getSource()==jm1){

c1.show(jp_right,"1");
}
else if(e.getSource()==jm2){
c1.show(jp_right,"2");
}
else if(e.getSource()==jm3){
c1.show(jp_right,"3");
}


((JMenu)e.getSource()).setForeground(Color.RED);
((JMenu)e.getSource()).setCursor(new Cursor(HAND_CURSOR));

}

@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
((JMenu)e.getSource()).setForeground(Color.BLACK);
((JMenu)e.getSource()).setCursor(new Cursor(HAND_CURSOR));
}
@Override
public void actionPerformed(ActionEvent ae) {
// TODO Auto-generated method stub
switch (ae.getActionCommand().charAt(0)) {
case '4':
c1.show(jp_right, "4");
break;
case '5':
c1.show(jp_right, "5");
break;
case '6':
c1.show(jp_right, "6");
break;
case '7':
c1.show(jp_right, "7");
break;
case '8':
c1.show(jp_right, "8");
break;
case '9':
c1.show(jp_right, "9");
break;
case 'a':
c1.show(jp_right, "a");
break;
case 'b':
c1.show(jp_right, "b");
break;
default:
break;
}
}
}

class Music implements ControllerListener,Runnable{  
    private Player player;  
     
    //监听player的相关事件  
   
@Override
public void run() {
// TODO Auto-generated method stub

       
       URL url = null;  
       File file=null;
       try {  
           //准备一个要播放的视频文件的URL  
        file=new File("aiqing.mp3");
           url =file.toURI().toURL();
       } catch (MalformedURLException e) {  
           e.printStackTrace();  
       }         
       try {  
           //通过调用Manager的createPlayer方法来创建一个Player的对象  
           //这个对象是媒体播放的核心控制对象  
           player = Manager.createPlayer(url);  
       } catch (NoPlayerException e1) {  
           e1.printStackTrace();  
       } catch (IOException e1) {  
           e1.printStackTrace();  
       }  
 
       //对player对象注册监听器,能噶偶在相关事件发生的时候执行相关的动作  
       player.addControllerListener(this);  
        
       //让player对象进行相关的资源分配  
       player.realize();  
     player.start();
}








@Override
public void controllerUpdate(ControllerEvent arg0) {
// TODO Auto-generated method stub

}  
  
}  


关键点在于:安装JMF,使用Player做线程播放MP3格式音乐当做背景音乐,学会使用JMenuBar,JMenu,JMenuItem,以及一些简单的事件处理。

缺点:内存使用过多,创建太多的面板。

0 0
原创粉丝点击