首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Merlin Swing 聽覺反饋:為組件添加聲音提示

     編輯:Java 相關知識

聽覺提示架構

J2SE 1.4 Swing 組件可對特定事件播放聲音,模擬原生 OS 組件行為。預設關閉。Swing 採用可插拔外觀 (PLAF),組件從 UIManager 獲取顏色、字體等屬性。同理,聽覺提示屬性 AuditoryCues.playList 為事件名稱字串陣列,UIManager 映射到特定外觀的聲音文件。

系統預定義聲音事件

  • CheckBoxMenuItem.commandSound
  • InternalFrame.closeSound / maximizeSound / minimizeSound / restoreDownSound / restoreUpSound
  • MenuItem.commandSound
  • OptionPane.errorSound / informationSound / questionSound / warningSound
  • PopupMenu.popupSound
  • RadioButtonMenuItem.commandSound

啟用與配置

三種預設播放列表鍵:

  • AuditoryCues.allAuditoryCues:所有聲音
  • AuditoryCues.defaultCueList:僅四種 OptionPane 聲音(Metal 外觀專用)
  • AuditoryCues.noAuditoryCues:無聲

啟用所有聲音:

UIManager.put("AuditoryCues.playList",
  UIManager.get("AuditoryCues.allAuditoryCues"));

替換特定聲音(如將「問題」聲音換為「錯誤」聲音):

UIManager.put("OptionPane.questionSound", "sounds/OptionPaneError.wav");

完整範例:聲音控制面板

三個單選按鈕切換「預設」、「關閉」、「開啟」三種模式;兩按鈕觸發確認/訊息對話框測試聲音。代碼展示動態切換播放列表與替換聲音文件。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Audio extends JFrame {
  public Audio() {
    super("Auditory Popups");
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    UIManager.put("AuditoryCues.playList", UIManager.get("AuditoryCues.defaultCueList"));
    UIManager.put("OptionPane.questionSound", "sounds/OptionPaneError.wav");
    // ... 建立 UI、單選按鈕動作監聽器切換播放列表 ...
    // 確認對話框按鈕
    confirmButton.addActionListener(e -> {
      int result = JOptionPane.showConfirmDialog(Audio.this, "Confirm?");
      JOptionPane.showMessageDialog(Audio.this, result==JOptionPane.YES_OPTION?"Confirmed":"Rejected");
    });
    // 訊息對話框按鈕
    messageButton.addActionListener(e -> JOptionPane.showMessageDialog(Audio.this, "The Message"));
    pack(); show();
  }
  public static void main(String[] args) { new Audio(); }
}

聲音示例界面

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved