欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實(shí)現(xiàn)播放背景音樂

 更新時(shí)間:2021年03月22日 08:43:35   作者:點(diǎn)丶錯(cuò)了。。  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)播放背景音樂,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java實(shí)現(xiàn)播放背景音樂的具體代碼,供大家參考,具體內(nèi)容如下

測(cè)試源碼

播放背景音樂類

package forGame;

import javax.sound.sampled.*;
import java.io.File;

//測(cè)試背景音樂播放(只能播放.wav文件)
public class Demo_2 {
  //需要傳入要播放的文件
  void playMusic(File file)
  {
    try
    {
      //創(chuàng)建相當(dāng)于音樂播放器的對(duì)象
      Clip clip = AudioSystem.getClip();
      //將傳入的文件轉(zhuǎn)成可播放的文件
      AudioInputStream audioInput = AudioSystem.getAudioInputStream(file);
      //播放器打開這個(gè)文件
      clip.open(audioInput);
      //clip.start();//只播放一次
      //循環(huán)播放
      clip.loop(Clip.LOOP_CONTINUOUSLY);
    } catch(Exception ex){
      ex.printStackTrace();
    }
    //死循環(huán)不讓主程序結(jié)束(swing可不用)
    /*
      while(true){
      }
    */
  }
}

窗口類

package forGame;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

//動(dòng)態(tài)效果
public class Demo_1 extends JFrame{
  //背景
  private BufferedImage bufferedImage;
  //窗體大小
  private int width;
  private int height;
  //照片數(shù)組
  private BufferedImage[] images = new BufferedImage[4];
  //要繪制動(dòng)態(tài)圖片中的那張
  private BufferedImage image;
  //背景音樂
  private File bgm;
  //播放音樂類對(duì)象
  private Demo_2 demo_2 = new Demo_2();

  //初始化
  {
    if(bufferedImage == null){
      try {
        bufferedImage = ImageIO.read(new File("src\\image\\背景.png"));
        for(int i = 1;i < images.length + 1;i ++)
          images[i - 1] = ImageIO.read(new File("src\\image\\大飛機(jī)爆炸" + i + ".png"));
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
    width = bufferedImage.getWidth();
    height = bufferedImage.getHeight();
    image = images[0];
    bgm = new File("src\\music\\bgm.wav");
  }

  public Demo_1(){
    super("動(dòng)態(tài)測(cè)試");
    //設(shè)置窗口
    setSize(width,height);
    setLocationRelativeTo(null);
    setResizable(false);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);
    //啟動(dòng)線程
    MyThread myThread = new MyThread();
    myThread.start();
    //播放背景音樂
    demo_2.playMusic(bgm);
  }

  //雙緩沖繪制解決圖片閃爍問題
  @Override
  public void paint(Graphics g) {
    Image image = this.createImage(width,height);
    Graphics gImage = image.getGraphics();
    gImage.setColor(gImage.getColor());
    gImage.fillRect(0,0,width,height);
    super.paint(gImage);

    //繪制背景
    gImage.drawImage(bufferedImage,0 ,0 ,null );
    //繪制動(dòng)態(tài)圖片
    gImage.drawImage(this.image,0 ,100 ,null );

    //最后繪制緩沖后的圖片
    g.drawImage(image,0 ,0 , null);
  }

  private int num = 0;//images數(shù)組內(nèi)圖片索引
  //線程內(nèi)部類
  private class MyThread extends Thread{
    @Override
    public void run() {
      while(true) {
        if(num <= 3) {
          image = images[num ++];
        }
        else
          num = 0;
        repaint();
        try {
          sleep(100);//每隔100毫秒重繪一次
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
      }
    }
  }

  public static void main(String[] args) {
    new Demo_1();
  }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談Java獲得多線程的返回結(jié)果方式(3種)

    淺談Java獲得多線程的返回結(jié)果方式(3種)

    這篇文章主要介紹了淺談Java獲得多線程的返回結(jié)果方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 純Java實(shí)現(xiàn)數(shù)字證書生成簽名的簡(jiǎn)單實(shí)例

    純Java實(shí)現(xiàn)數(shù)字證書生成簽名的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)硪黄僇ava實(shí)現(xiàn)數(shù)字證書生成簽名的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • 一文帶你掌握J(rèn)ava8中Lambda表達(dá)式 函數(shù)式接口及方法構(gòu)造器數(shù)組的引用

    一文帶你掌握J(rèn)ava8中Lambda表達(dá)式 函數(shù)式接口及方法構(gòu)造器數(shù)組的引用

    Java 8 (又稱為 jdk 1.8) 是 Java 語(yǔ)言開發(fā)的一個(gè)主要版本。 Oracle 公司于 2014 年 3 月 18 日發(fā)布 Java 8 ,它支持函數(shù)式編程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等
    2021-10-10
  • java發(fā)送內(nèi)嵌圖片郵件

    java發(fā)送內(nèi)嵌圖片郵件

    這篇文章主要介紹了java發(fā)送內(nèi)嵌圖片郵件,在博客系統(tǒng)中需要郵件服務(wù)的功能,僅僅是發(fā)送文本內(nèi)容,現(xiàn)在嘗試一下發(fā)送內(nèi)嵌圖片郵件,感興趣的小伙伴們可以參考一下
    2016-01-01
  • 使用Java通過OAuth協(xié)議驗(yàn)證發(fā)送微博的教程

    使用Java通過OAuth協(xié)議驗(yàn)證發(fā)送微博的教程

    這篇文章主要介紹了使用Java通過OAuth協(xié)議驗(yàn)證發(fā)送微博的教程,使用到了新浪微博為Java開放的API weibo4j,需要的朋友可以參考下
    2016-02-02
  • SWT(JFace)體驗(yàn)之RowLayout布局

    SWT(JFace)體驗(yàn)之RowLayout布局

    相對(duì)于FillLayout來說,RowLayout比較靈活,功能也比較強(qiáng)。用戶可以設(shè)置布局中子元素的大小、邊距、換行及間距等屬性。
    2009-06-06
  • Spring常用數(shù)據(jù)源的xml配置詳解

    Spring常用數(shù)據(jù)源的xml配置詳解

    這篇文章主要介紹了Spring常用數(shù)據(jù)源的xml配置詳解,數(shù)據(jù)源是連接到數(shù)據(jù)庫(kù)的一類路徑,它包含了訪問數(shù)據(jù)庫(kù)的信息(地址、用戶名、密碼),數(shù)據(jù)源就像是排水管道,需要的朋友可以參考下
    2023-07-07
  • Java實(shí)現(xiàn)PDF打印的解決方案

    Java實(shí)現(xiàn)PDF打印的解決方案

    今天小編就為大家分享一篇關(guān)于Java實(shí)現(xiàn)PDF打印的解決方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java HashMap源碼及并發(fā)環(huán)境常見問題解決

    Java HashMap源碼及并發(fā)環(huán)境常見問題解決

    這篇文章主要介紹了Java HashMap源碼及并發(fā)環(huán)境常見問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Hibernate validator使用以及自定義校驗(yàn)器注解

    Hibernate validator使用以及自定義校驗(yàn)器注解

    這篇文章主要介紹了Hibernate validator使用以及自定義校驗(yàn)器注解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01

最新評(píng)論