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

📄 datalineinfogui.java

📁 oraily的Swing hacks code
💻 JAVA
字号:
import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import javax.swing.border.*;import javax.sound.sampled.*;public class DataLineInfoGUI extends JPanel {    PCMFilePlayer player;    JButton startButton;    public DataLineInfoGUI (File f) {        super();        try {            player = new PCMFilePlayer (f);        } catch (Exception ioe) {            add (new JLabel ("Error: " +                             ioe.getMessage()));            return;        }        DataLine line = player.getLine();        // layout        // line 1: name        setLayout (new BoxLayout (this, BoxLayout.Y_AXIS));        add (new JLabel ("File:  " +                          player.getFile().getName()));        // line 2: levels        add (new DataLineLevelMeter (line));        // line 3: format info as textarea        AudioFormat format = line.getFormat();        JTextArea ta = new JTextArea();        ta.setBorder (new TitledBorder ("Format"));        ta.append ("Encoding: " +                    format.getEncoding().toString() + "\n");        ta.append ("Bits/sample: " +                   format.getSampleSizeInBits() + "\n");        ta.append ("Channels: " +                   format.getChannels() + "\n");        ta.append ("Endianness: " +                    (format.isBigEndian() ? " big " : "little") + "\n");        ta.append ("Frame size: " +                    format.getFrameSize() + "\n");        ta.append ("Frame rate: " +                   format.getFrameRate() + "\n");        add (ta);        // now start playing        player.start();    }    public static void main (String[] args) {        JFileChooser chooser = new JFileChooser();        chooser.showOpenDialog(null);        File file = chooser.getSelectedFile();        DataLineInfoGUI demo =             new DataLineInfoGUI (file);                JFrame f = new JFrame ("JavaSound info");        f.getContentPane().add (demo);        f.pack();        f.setVisible(true);    }    class DataLineLevelMeter extends JPanel {        DataLine line;        float level = 0.0f;        public DataLineLevelMeter (DataLine l) {            line = l;            Timer timer =                new Timer (50,                           new ActionListener (){                               public void actionPerformed (ActionEvent e) {                                   level = line.getLevel();                                   repaint();                               }                           });            timer.start();        }        public void paint (Graphics g) {            Dimension d = getSize();            g.setColor (Color.green);            int meterWidth = (int) (level * (float) d.width);            g.fillRect (0, 0, meterWidth, d.height);        }            }}

⌨️ 快捷键说明

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