⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 soundplayergui.java

📁 现在在国外大学里最流行的java学习软件,同时还有大量的example,在名为project的文件里.安装好后用bluej打开peoject的例子,可以进行你想要的任何变化.同时可以了解大量的源码
💻 JAVA
字号:
import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.border.*;import java.util.List;import java.util.ArrayList;import java.util.Iterator;import java.io.*;/** * A simple sound player. To start, create an instance of this class. *  * The sound player can play sound clips in WAV, AU and AIFF formats * with standard sample rates. *  * @author Michael Kolling and David J Barnes  * @version 1.0 */public class SoundPlayerGUI extends JFrame    implements ChangeListener, ActionListener{    private static final String VERSION = "Version 1.0";    private static final String AUDIO_DIR = "audio";        private JList fileList;    private JSlider slider;    private JLabel infoLabel;    private SoundEngine player;    /**     * Main method for starting the player from a command line.     */    public static void main(String[] args)    {        SoundPlayerGUI gui = new SoundPlayerGUI();    }        /**     * Create a SoundPlayer and display its GUI on screen.     */    public SoundPlayerGUI()    {        super("SoundPlayer");        player = new SoundEngine();        String[] audioFileNames = findFiles(AUDIO_DIR, null);        makeFrame(audioFileNames);    }    /**     * Play the sound file currently selected in the file list. If there is no     * selection in the list, or if the selected file is not a sound file,      * do nothing.     */    private void play()    {        String filename = (String)fileList.getSelectedValue();        if(filename == null) {  // nothing selected            return;        }        slider.setValue(0);        boolean successful = player.play(new File(AUDIO_DIR, filename));        if(successful) {            showInfo(filename + " (" + player.getDuration() + " seconds)");        }        else {            showInfo("Could not play file - unknown format");        }    }    /**     * Display information about a selected sound file (name and clip length).     * @param message The message to display.     */    private void showInfo(String message)    {        infoLabel.setText(message);    }        /**     * Stop the currently playing sound file (if there is one playing).     */    private void stop()    {        player.stop();    }    /**     * Stop the currently playing sound file (if there is one playing).     */    private void pause()    {        player.pause();    }    /**     * Resume a previously suspended sound file.     */    private void resume()    {        player.resume();    }    /**     * Quit function: quit the application.     */    private void quit()    {        System.exit(0);    }            /**     * About function: show the 'about' box.     */    private void showAbout()    {        JOptionPane.showMessageDialog(this,                     "SoundPlayer\n" + VERSION,                    "About SoundPlayer",                     JOptionPane.INFORMATION_MESSAGE);    }        /**     * Load the file names of all files in the given directory.     * @param dirName Directory (folder) name.     * @param suffix File suffix of interest.     * @return The names of files found.     */    private String[] findFiles(String dirName, String suffix)    {        File dir = new File(dirName);        if(dir.isDirectory()) {            String[] allFiles = dir.list();            if(suffix == null) {                return allFiles;            }            else {                List<String> selected = new ArrayList<String>();                for(String filename : allFiles) {                    if(filename.endsWith(suffix)) {                        selected.add(filename);                    }                }                return selected.toArray(new String[selected.size()]);            }        }        else {            System.out.println("Error: " + dirName + " must be a directory");            return null;        }    }    // ------- ChangeListener interface (for Slider) -------    /**     * ChangeListener method for slider changes. This method is called     * when the slider value is changed by the user.     * @param evt The event details.     */    public void stateChanged(ChangeEvent evt)    {        player.seek(slider.getValue());    }        // ------- ActionListener interface (for ComboBox) -------    /**     * ActionListener method for changes of format combo box.     * When this methosd is called, the user has made a new selection      * in the combo box.     * @param evt The event details.     */    public void actionPerformed(ActionEvent evt)     {        JComboBox cb = (JComboBox)evt.getSource();        String format = (String)cb.getSelectedItem();        if(format.equals("all formats")) {            format = null;        }        fileList.setListData(findFiles(AUDIO_DIR, format));    }    // ---- Swing stuff to build the frame and all its components and menus ----        /**     * Create the complete application GUI.     * @param audioFiles The file names to display.     */    private void makeFrame(String[] audioFiles)    {        // the following makes sure that our application exits when        // the user closes its window        setDefaultCloseOperation(EXIT_ON_CLOSE);                JPanel contentPane = (JPanel)getContentPane();        contentPane.setBorder(new EmptyBorder(6, 10, 10, 10));        makeMenuBar();                // Specify the layout manager with nice spacing        contentPane.setLayout(new BorderLayout(8, 8));        // Create the left side with combobox and scroll list        JPanel leftPane = new JPanel();        {            leftPane.setLayout(new BorderLayout(8, 8));            String[] formats = { "all formats", ".wav", ".au", ".aif" };                // Create the combo box.            JComboBox formatList = new JComboBox(formats);            formatList.addActionListener(this);            leftPane.add(formatList, BorderLayout.NORTH);                // Create the scrolled list for file names            fileList = new JList(audioFiles);            fileList.setForeground(new Color(140,171,226));            fileList.setBackground(new Color(0,0,0));            fileList.setSelectionBackground(new Color(87,49,134));            fileList.setSelectionForeground(new Color(140,171,226));            JScrollPane scrollPane = new JScrollPane(fileList);            scrollPane.setColumnHeaderView(new JLabel("Audio files"));            leftPane.add(scrollPane, BorderLayout.CENTER);        }        contentPane.add(leftPane, BorderLayout.CENTER);        // Create the center with image, text label, and slider       JPanel centerPane = new JPanel();        {            centerPane.setLayout(new BorderLayout(8, 8));                JLabel image = new JLabel(new ImageIcon("title.jpg"));            centerPane.add(image, BorderLayout.NORTH);            centerPane.setBackground(Color.BLACK);            infoLabel = new JLabel("  ");            infoLabel.setHorizontalAlignment(SwingConstants.CENTER);            infoLabel.setForeground(new Color(140,171,226));            centerPane.add(infoLabel, BorderLayout.CENTER);            slider = new JSlider(0, 100, 0);            TitledBorder border = new TitledBorder("Seek");            border.setTitleColor(Color.white);            slider.setBorder(new CompoundBorder(new EmptyBorder(6, 10, 10, 10), border));            slider.addChangeListener(this);            slider.setBackground(Color.BLACK);            slider.setMajorTickSpacing(25);            slider.setPaintTicks(true);            centerPane.add(slider, BorderLayout.SOUTH);        }        contentPane.add(centerPane, BorderLayout.EAST);        // Create the toolbar with the buttons        JPanel toolbar = new JPanel();        {            toolbar.setLayout(new GridLayout(1, 0));              JButton button = new JButton("Play");            button.addActionListener(new ActionListener() {                                   public void actionPerformed(ActionEvent e) { play(); }                               });            toolbar.add(button);                        button = new JButton("Stop");            button.addActionListener(new ActionListener() {                                   public void actionPerformed(ActionEvent e) { stop(); }                               });            toolbar.add(button);                button = new JButton("Pause");            button.addActionListener(new ActionListener() {                                   public void actionPerformed(ActionEvent e) { pause(); }                               });            toolbar.add(button);                        button = new JButton("Resume");            button.addActionListener(new ActionListener() {                                   public void actionPerformed(ActionEvent e) { resume(); }                               });            toolbar.add(button);        }                contentPane.add(toolbar, BorderLayout.NORTH);        // building is done - arrange the components              pack();                // place this frame at the center of the screen and show        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();        setLocation(d.width/2 - getWidth()/2, d.height/2 - getHeight()/2);        setVisible(true);    }        /**     * Create the main frame's menu bar.     */    private void makeMenuBar()    {        final int SHORTCUT_MASK =            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();        JMenuBar menubar = new JMenuBar();        setJMenuBar(menubar);                JMenu menu;        JMenuItem item;                // create the File menu        menu = new JMenu("File");        menubar.add(menu);                item = new JMenuItem("Quit");            item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, SHORTCUT_MASK));            item.addActionListener(new ActionListener() {                               public void actionPerformed(ActionEvent e) { quit(); }                           });        menu.add(item);        // create the Help menu        menu = new JMenu("Help");        menubar.add(menu);                item = new JMenuItem("About SoundPlayer...");            item.addActionListener(new ActionListener() {                               public void actionPerformed(ActionEvent e) { showAbout(); }                           });        menu.add(item);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -