麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

使用Java編寫瀏覽圖片和播放音樂的程序

2023-06-10 12:42:58
字體:
來源:轉載
供稿:網友

本文介紹了Java中瀏覽圖片和播放音樂的實現方法。

/**
 *程序要求:編寫一個Applet的小程序,準備5幅圖片和三個音樂文件,繪制到Applet中,
 *并增加幾個按鈕,控制圖片的切換、放大、縮小和音樂文件的播放。
 *作者:wwj
 *日期:2012/4/29
 *參考:neicole
 *功能:能進行圖片和歌曲的選擇變換的applet小程序
 **/

 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.*;
 import java.applet.Applet;
 import java.applet.AudioClip;

 public class Ex7_2 extends Applet implements ActionListener,ItemListener
 {

  //創建兩個面板
  JPanel p1=new JPanel();
  JPanel p2=new JPanel();
  JPanel p3=new JPanel();
  //聲音對象
  AudioClip[] sound=new AudioClip[3];
  int playingSong=0;
  //切換圖片的按鈕
  JButton lastPic=new JButton("上一張");
  JButton setLarge=new JButton("放大");
  JButton setLittle=new JButton("縮小");
  JButton nextPic=new JButton("下一張");
  //切換歌曲的按鈕
  JButton lastSound=new JButton("上一首");
  JButton play=new JButton("播放");
  JButton loop=new JButton("連續");
  JButton stop=new JButton("停止");
  JButton nextSound=new JButton("下一首");
  //曲目下拉列表
  JComboBox xx;
  String names[]={ "曲目1.wav","曲目2.wav","曲目3.wav"};
 
 //創建畫布對象
 MyCanvasl showPhotos;

  public void init()
  {
   //窗口布局
   this.setLayout(new BorderLayout());

   //為圖片控制按鈕注冊監聽器
   lastPic.addActionListener(this);
   setLarge.addActionListener(this);
   setLittle.addActionListener(this);
   nextPic.addActionListener(this);

   //向面板p1添加組件
   p1.add(lastPic);
   p1.add(setLarge);
   p1.add(setLittle);
   p1.add(nextPic);
   p1.repaint();
 
  //實例化下拉列表對象
  xx = new JComboBox(names);
  xx.addItemListener(this);

     //為控制播放音樂按鈕注冊監聽器
  lastSound.addActionListener(this);
  play.addActionListener(this);
  loop.addActionListener(this);
  stop.addActionListener(this);
  nextSound.addActionListener(this);

  for(int i=0;i<3;i++)
   {
   sound[i]=getAudioClip(getCodeBase(),"music/"+"曲目"
     +Integer.toString(i+1)+".wav");
   }
  

  
     //向面板p2添加組件
   p2.add(xx);
   p2.add(lastSound);
   p2.add(play);
   p2.add(loop);
   p2.add(stop);
   p2.add(nextSound);
   p2.repaint();
  
  showPhotos = new MyCanvasl();
  p3.add(showPhotos);
   p3.repaint();

  //把面板p1和p2分別布置到窗口的北部和南部
   add(p1,BorderLayout.NORTH);
   add(p2,BorderLayout.SOUTH);
   add(p3,BorderLayout.CENTER);

   this.repaint();

  }


  //按鈕的事件處理
  public void actionPerformed(ActionEvent e)
  {

  
  if(e.getSource() == lastPic){
   showPhotos.changePhotoShow('P');
  }
  else if(e.getSource() == nextPic){
   showPhotos.changePhotoShow('N');
  }
  else if(e.getSource() == setLarge){
   showPhotos.changePhotoSize('B');
  }
  else if(e.getSource() == setLittle){
   showPhotos.changePhotoSize('S');
  }
 
  else if(e.getSource()==lastSound){ //上一首
   sound[playingSong].stop();
   playingSong=(playingSong-1+3)%3;
   xx.setSelectedIndex(playingSong);
   sound[playingSong].play();

  }
  else if(e.getSource()==play){  //按下播放按鈕
   sound[playingSong].play();
  }
  else if(e.getSource()==loop){  //按下循環按鈕
   sound[playingSong].loop();
  }
  else if(e.getSource()==stop){  //按下停止按鈕
   sound[playingSong].stop();
  }
  else{        //下一首
   sound[playingSong].stop();
   playingSong=(playingSong+1)%3;
   xx.setSelectedIndex(playingSong);
   sound[playingSong].play();

  } 
  }


  //下拉列表的事件處理
  public void itemStateChanged(ItemEvent e)
  {
  
   sound[playingSong].stop();
   sound[playingSong]=getAudioClip(getCodeBase(),"music/"+xx.getSelectedItem());
  }

 class MyCanvasl extends Canvas
 {
  
  public Image[] img=new Image[5];

  int MaxWidth = 600;
  int MaxHeight = 500;
  int nowImageIndex = 0;
  int coordinateX = 0;
  int coordinateY = 0;
  int currentWidth = MaxWidth;
  int currentHeight = MaxHeight;

  
  MyCanvasl(){
   setSize(MaxWidth,MaxHeight);
   //獲取當前目錄下的圖片
   for(int i=0;i<5;i++){
    img[i]=getImage(getCodeBase(),"image/"+Integer.toString(i+1)+".jpg");
   }
  }


  private void changePhotoIndex(int index){
   nowImageIndex = index;
   changePhotoSize('M');
  }

  public void changePhotoShow(char command){
   if('P' == command){
    changePhotoIndex((nowImageIndex + 5 - 1 ) % 5);
   }
   else if('N' == command){
    changePhotoIndex((nowImageIndex + 1) % 5);
   }
  }
  


   public void changePhotoSize(char command){
   if ('M' == command){
    currentWidth = MaxWidth;
    currentHeight = MaxHeight;
   }
   else if ('B' == command){
    if(MaxWidth >= (currentWidth + 100) && MaxHeight >= (currentHeight + 100)){
     currentWidth += 100;
     currentHeight += 100;
    }
   }
   else if('S' == command){
    if((0 < (currentWidth - 100)) && (0 < (currentHeight - 100))){
     currentWidth = currentWidth - 100;
     currentHeight = currentHeight - 100;
    }
   }
   coordinateX = (MaxWidth - currentWidth) / 2;
   coordinateY = (MaxHeight - currentHeight) / 2;
   repaint();
  }
   //paint方法用來在窗口顯示圖片
  public void paint(Graphics g){
        g.drawImage(img[nowImageIndex],coordinateX,coordinateY,currentWidth,currentHeight,this);

  }
 }
 }

 最終效果如下圖所示:

Java實現圖片瀏覽和音樂播放

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩欧美电影一区二区三区 | 亚洲国产精品一区二区久久 | 国产亚洲精品久久久久婷婷瑜伽 | 亚洲免费毛片基地 | 中国av免费观看 | 欧美黄色性视频 | 国产成人高清在线 | 精品国产看高清国产毛片 | 操操操日日日干干干 | www.777含羞草| 国产成人综合在线观看 | 午夜在线视频一区二区三区 | 国产精品久久久久久久久久 | 欧美成人精品一区二区三区 | 黄色小视频免费在线观看 | 成人艳情一二三区 | 美国黄色毛片女人性生活片 | 91色成人| 国产日本在线播放 | 亚洲小视频在线播放 | 成人一级在线 | 精品国产91一区二区三区 | 午夜爱爱福利 | 成人毛片在线 | 国产精品爱久久久久久久 | 欧美18—19sex性hd按摩 | 精品一区二区三区网站 | 日本不卡一二三区 | 成人福利在线观看 | 成人电影毛片 | 精品国产中文字幕 | 逼片视频| 久久精品无码一区二区三区 | 嗯哈~不行好大h双性 | 热99热| 精品久久久久久国产三级 | 一级爱片 | 色阁五月| 中国免费一级毛片 | 韩国美女一区 | 成人在线视频播放 |