zoukankan      html  css  js  c++  java
  • 第五次作业

    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;

    import javax.swing.*;
    import java.io.File;

    class AudioPlayDemo extends JFrame implements ActionListener {
    boolean looping = false; 
    File file1 = new File("music\明天会更好.wav");
    AudioClip sound1;
    AudioClip chosenClip;

    JButton playButton = new JButton("播放"); 
    JButton loopButton = new JButton("循环播放"); 
    JButton stopButton = new JButton("停止"); 
    JLabel status = new JLabel("选择播放文件"); 
    JPanel controlPanel = new JPanel(); 
    Container container = getContentPane(); 

    public AudioPlayDemo() { 
    try {
    sound1 = Applet.newAudioClip(file1.toURL());
    chosenClip = sound1;
    } catch(OutOfMemoryError e){
    System.out.println("内存溢出");
    e.printStackTrace();
    } catch(Exception e){
    e.printStackTrace();
    }
    playButton.addActionListener(this);
    loopButton.addActionListener(this);
    stopButton.addActionListener(this);
    stopButton.setEnabled(false); 

    controlPanel.add(playButton);
    controlPanel.add(loopButton);
    controlPanel.add(stopButton);

    container.add(controlPanel, BorderLayout.CENTER);
    container.add(status, BorderLayout.SOUTH);

    setSize(300, 130); 
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序
    }

    public void actionPerformed(ActionEvent event) {
    if (chosenClip == null) {
    status.setText("声音未载入");
    return; 
    }
    Object source = event.getSource(); //获取用户洗涤激活的按钮

    if (source == playButton) {
    stopButton.setEnabled(true); 
    loopButton.setEnabled(true); 
    chosenClip.play(); 
    status.setText("正在播放");
    }

    if (source == loopButton) {
    looping = true;
    chosenClip.loop(); 
    loopButton.setEnabled(false); 
    stopButton.setEnabled(true); 
    status.setText("正在循环播放"); 
    }
    if (source == stopButton) {
    if (looping) {
    looping = false;
    chosenClip.stop(); 
    loopButton.setEnabled(true);
    } else {
    chosenClip.stop();
    }
    stopButton.setEnabled(false); 
    status.setText("停止播放");
    }
    }
    public static void main(String s[]) {
    new AudioPlayDemo(); 
    }
    }

  • 相关阅读:
    josn类库引用
    WPF圆角按钮
    C#实现某一属性值变化时触发事件 Form1_changeEvent是对应的事件
    C#winform生成安装包
    特性
    反射可以动态调用对象(一般是类)的名称,属性,方法等。具体见下。重要
    原子操作 和Inerlocked 常用于多线程同步
    spingboot 配置多个数据源报错
    Address already in use: JVM_Bind 端口被占用的几个解决办法
    数据库问题(一)
  • 原文地址:https://www.cnblogs.com/nmxz/p/5396934.html
Copyright © 2011-2022 走看看