在Java窗体中添加音乐可以使用javax.sound包中的类来实现。以下是一个简单的示例代码:
import javax.swing.*; import java.awt.*; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; public class MusicPlayer extends JFrame { private JButton playButton; private JButton stopButton; private Clip clip; public MusicPlayer() { // 设置窗体属性 setTitle("音乐播放器"); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); // 创建按钮 playButton = new JButton("播放"); stopButton = new JButton("停止"); // 添加按钮点击事件 playButton.addActionListener(e -> playMusic()); stopButton.addActionListener(e -> stopMusic()); // 添加按钮到窗体 setLayout(new FlowLayout()); add(playButton); add(stopButton); // 加载音乐文件 try { clip = AudioSystem.getClip(); clip.open(AudioSystem.getAudioInputStream(getClass().getResource("music.wav"))); } catch (Exception e) { e.printStackTrace(); } } private void playMusic() { if (!clip.isRunning()) { clip.start(); } } private void stopMusic() { if (clip.isRunning()) { clip.stop(); clip.setFramePosition(0); } } public static void main(String[] args) { SwingUtilities.invokeLater(() -> { MusicPlayer musicPlayer = new MusicPlayer(); musicPlayer.setVisible(true); }); } }
在上述示例代码中,首先创建一个JFrame
窗体,然后添加两个按钮用于播放和停止音乐。在playMusic
方法中,调用clip.start()
来播放音乐,而在stopMusic
方法中,调用clip.stop()
来停止音乐播放,并使用clip.setFramePosition(0)
将音乐播放位置重置为起始位置。音乐文件music.wav
需要放在与Java源代码相同的目录下。然后通过SwingUtilities.invokeLater()
方法来在事件调度线程中创建并显示窗体。