在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()
方法來在事件調度線程中創建并顯示窗體。