最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 實現(xiàn)聲音播放程序

 更新時間:2020年12月22日 17:18:30   作者:小星_log  
這篇文章主要介紹了Java 實現(xiàn)聲音播放程序的示例代碼,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
package newpackage1;

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

// 聲音播放程序

public class AudioPlayDemo  extends JFrame  implements ActionListener, ItemListener {
  boolean looping = false; //是否循環(huán)播放
  String[] choics = { "chimes.wav", "start.wav" }; //聲音文件名數(shù)組
  URL file1 = getClass().getResource(choics[0]); //聲音文件1
  URL file2 = getClass().getResource(choics[1]); //聲音文件2
  AudioClip sound1 = java.applet.Applet.newAudioClip(file1); //聲音剪輯對象1
  AudioClip sound2 = java.applet.Applet.newAudioClip(file2); //聲音剪輯對象2
  AudioClip chosenClip = sound1; //選擇的聲音剪輯對象

  JComboBox jcbFiles = new JComboBox(choics); //文件選擇組合框
  JButton playButton = new JButton("播放"); //播放按鈕
  JButton loopButton = new JButton("循環(huán)播放"); //循環(huán)播放按鈕
  JButton stopButton = new JButton("停止"); //停止播放按鈕
  JLabel status = new JLabel("選擇播放文件"); //狀態(tài)欄標簽
  JPanel controlPanel = new JPanel(); //控制面板用于包容按鈕
  Container container = getContentPane(); //獲得窗口內(nèi)容窗格

  public AudioPlayDemo() { //構(gòu)造器
    super("聲音播放程序"); //調(diào)用父類構(gòu)造器設(shè)置窗口標題欄

    jcbFiles.setSelectedIndex(0); //設(shè)置組合框選擇項
    jcbFiles.addItemListener(this); //為播放按鈕添加項目監(jiān)聽器
    //為播放按鈕、循環(huán)播放按鈕、停止播放按鈕添加動作監(jiān)聽器
    playButton.addActionListener(this);
    loopButton.addActionListener(this);
    stopButton.addActionListener(this);
    stopButton.setEnabled(false); //設(shè)置停止播放按鈕不可用
    //把播放按鈕、循環(huán)播放按鈕、停止播放按鈕加入控制面板
    controlPanel.add(playButton);
    controlPanel.add(loopButton);
    controlPanel.add(stopButton);
    //把文件選擇組合框、控制面板、狀態(tài)欄標簽加入到窗口內(nèi)容窗格
    container.add(jcbFiles, BorderLayout.NORTH);
    container.add(controlPanel, BorderLayout.CENTER);
    container.add(status, BorderLayout.SOUTH);

    setSize(300, 130); //設(shè)置窗口大小
    setVisible(true); //設(shè)置窗口可視
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關(guān)閉窗口時退出程序
  }
  //文件選擇組合框事件處理
  public void itemStateChanged(ItemEvent e) {
    if (jcbFiles.getSelectedIndex() == 0) {
      chosenClip = sound1;
    } else {
      chosenClip = sound2;
    }
  }
  //按鈕事件處理
  public void actionPerformed(ActionEvent event) {
    if (chosenClip == null) {
      status.setText("聲音未載入");
      return; //如果AudioClip對象為空,則直接返回
    }
    Object source = event.getSource(); //獲取用戶洗滌激活的按鈕
    //播放按鈕事件處理
    if (source == playButton) {
      stopButton.setEnabled(true); //設(shè)置停止播放按鈕可用
      loopButton.setEnabled(true); //設(shè)置循環(huán)播放按鈕可用
      chosenClip.play(); //播放選擇的聲音剪輯對象一次
      status.setText("正在播放"); //設(shè)置狀態(tài)欄信息
    }

    //循環(huán)播放按鈕事件處理
    if (source == loopButton) {
      looping = true;
      chosenClip.loop(); //循環(huán)播放選擇的聲音剪輯對象
      loopButton.setEnabled(false); //設(shè)置循環(huán)播放按鈕不可用
      stopButton.setEnabled(true); //設(shè)置停止播放按鈕可用
      status.setText("正在循環(huán)播放"); //設(shè)置狀態(tài)欄信息
    }
    //停止播放按鈕事件處理
    if (source == stopButton) {
      if (looping) {
        looping = false;
        chosenClip.stop(); //停止循環(huán)播放選擇的聲音剪輯對象
        loopButton.setEnabled(true); //設(shè)置循環(huán)播放按鈕可用
      } else {
        chosenClip.stop(); //停止播放選擇的聲音剪輯對象
      }
      stopButton.setEnabled(false); //設(shè)置循環(huán)播放按鈕可用
      status.setText("停止播放"); //設(shè)置狀態(tài)欄信息
    }
  }

  public static void main(String s[]) {
    new AudioPlayDemo(); //創(chuàng)建AudioPlayDemo對象
  }
}

以上就是Java 實現(xiàn)聲音播放程序的詳細內(nèi)容,更多關(guān)于Java 聲音播放的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java操作redis實現(xiàn)增刪查改功能的方法示例

    Java操作redis實現(xiàn)增刪查改功能的方法示例

    這篇文章主要介紹了Java操作redis實現(xiàn)增刪查改功能的方法,涉及java操作redis數(shù)據(jù)庫的連接、設(shè)置、增刪改查、釋放資源等相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • SpringBoot實現(xiàn)無感刷新Token的項目實踐

    SpringBoot實現(xiàn)無感刷新Token的項目實踐

    token刷新是前端安全中必要的一部分,本文就來介紹一下SpringBoot實現(xiàn)無感刷新Token的項目實踐,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Java簡單計算圓周率完整示例

    Java簡單計算圓周率完整示例

    這篇文章主要介紹了Java簡單計算圓周率,結(jié)合完整實例形式分析了Java計算圓周率的原理與操作技巧,代碼備有較為詳盡的注釋便于理解,需要的朋友可以參考下
    2018-05-05
  • 使用apache 的FileUtils處理文件的復制等操作方式

    使用apache 的FileUtils處理文件的復制等操作方式

    這篇文章主要介紹了使用apache 的FileUtils處理文件的復制等操作方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • IntelliJ IDEA cmd和idea Terminal查看java版本不一致的解決方案

    IntelliJ IDEA cmd和idea Terminal查看java版本不一致的解決

    原來win10電腦上安裝的是jdk8的版本,因某些原因,現(xiàn)在想換成jdk7的版本,修改環(huán)境變量后,在cmd中執(zhí)行 [java -version]命令,顯示的是7的版本,遇到這樣的問題如何解決呢?下面小編給大家分享IntelliJ IDEA cmd和idea Terminal查看java版本不一致的解決方案,一起看看吧
    2023-09-09
  • Springboot通過aop實現(xiàn)事務(wù)控制過程解析

    Springboot通過aop實現(xiàn)事務(wù)控制過程解析

    這篇文章主要介紹了Springboot通過aop實現(xiàn)事務(wù)控制過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • java多線程Thread-per-Message模式詳解

    java多線程Thread-per-Message模式詳解

    本篇文章給大家分享java多線程Thread-per-Message模式的相關(guān)知識點,對此有興趣的朋友參考學習下。
    2018-05-05
  • Java使用Tess4J實現(xiàn)圖像識別方式

    Java使用Tess4J實現(xiàn)圖像識別方式

    這篇文章主要介紹了Java使用Tess4J實現(xiàn)圖像識別方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Mybatis-Plus實現(xiàn)只更新部分字段的數(shù)據(jù)

    Mybatis-Plus實現(xiàn)只更新部分字段的數(shù)據(jù)

    這篇文章主要介紹了Mybatis-Plus實現(xiàn)只更新部分字段的數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • WebSocket獲取httpSession空指針異常的解決辦法

    WebSocket獲取httpSession空指針異常的解決辦法

    這篇文章主要介紹了在使用WebSocket實現(xiàn)p2p或一對多聊天功能時,如何獲取HttpSession來獲取用戶信息,本文結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2025-01-01

最新評論

平乐县| 涞水县| 长寿区| 南雄市| 成安县| 玉树县| 苍南县| 晋宁县| 永嘉县| 双柏县| 鄂托克前旗| 上栗县| 宣威市| 巴塘县| 阿荣旗| 扶绥县| 聂荣县| 花莲市| 西贡区| 屏东市| 陆川县| 华蓥市| 渝中区| 房产| 库伦旗| 西乌珠穆沁旗| 图片| 防城港市| 奉新县| 南京市| 吉林市| 德惠市| 黄石市| 建湖县| 河东区| 遵义市| 岑溪市| 玛曲县| 云阳县| 广丰县| 万荣县|