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

Java SE 6 GUI 新特性體驗:啟動畫面、系統托盤、對話框與圖片轉換

     編輯:Java 相關知識

Java SE 6 GUI 增強概覽

Java SE 6 為 AWT/Swing 注入多項實用新特性,顯著提升桌面應用用戶體驗:啟動畫面、系統托盤集成、標準輸入對話框、GIF 圖片讀寫支持等。

1. 啟動畫面

無需編寫代碼即可顯示啟動圖片,支持運行時動態繪製進度信息。

基本用法

  • 命令行啟動:java -splash:splash.gif MainClass
  • JAR 打包:在 MANIFEST.MF 添加 SplashScreen-Image: splash.gif,執行 java -jar App.jar。

動態控制啟動畫面

SplashScreen splash = SplashScreen.getSplashScreen();
Graphics g = splash.createGraphics();
String[] msgs = {"正在初始化 API...", "正在連接數據庫...", "加載配置..."};
for (int i = 0; i < msgs.length; i++) {
    g.setColor(Color.BLACK);
    g.drawString(msgs[i], 350, 170 + i * 15);
    splash.update();
    Thread.sleep(1000 * (i + 1));
}
// 主窗口顯示時自動關閉,或調用 splash.close() 強制關閉

2. 系統托盤集成

通過 java.awt.SystemTray 實現跨平台托盤圖標、彈出菜單、消息通知。

if (SystemTray.isSupported()) {
    SystemTray tray = SystemTray.getSystemTray();
    Image img = Toolkit.getDefaultToolkit().getImage("tray.gif");
    PopupMenu popup = new PopupMenu();
    popup.add(new MenuItem("打開主界面"));
    popup.add(new MenuItem("退出"));
    TrayIcon icon = new TrayIcon(img, "應用提示", popup);
    tray.add(icon);
    // 顯示不同類型通知
    icon.displayMessage("警告", "磁盤空間不足!", TrayIcon.MessageType.WARNING);
    icon.displayMessage("錯誤", "數據庫連接失敗!", TrayIcon.MessageType.ERROR);
    icon.displayMessage("信息", "新郵件到達", TrayIcon.MessageType.INFO);
}

可添加多個托盤圖標,每個圖標需獨立創建 TrayIcon 實例。

3. 標準輸入對話框

Java SE 6 提供內置輸入對話框,支持兩種模態類型:

  • APPLICATION_MODAL:阻塞整個應用程序。
  • DOCUMENT_MODAL:僅阻塞父窗口,其他窗口可交互。
JOptionPane pane = new JOptionPane("請輸入:", JOptionPane.QUESTION_MESSAGE);
pane.setWantsInput(true);
JDialog dialog = pane.createDialog(parentFrame, "輸入標題");
dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
dialog.setVisible(true);
String input = (String) pane.getInputValue();

4. 圖片格式轉換(含 GIF 支持)

GIF 專利過期後,Java SE 6 內置 GIF 讀寫支持。通過 ImageIO 輕松實現格式轉換:

File input = new File("photo.jpg");
BufferedImage image = ImageIO.read(input);
File output = new File("photo.gif");
ImageIO.write(image, "GIF", output);
// 查看支持格式
System.out.println(Arrays.toString(ImageIO.getWriterFormatNames()));
// 輸出: [BMP, bmp, jpg, JPG, wbmp, jpeg, png, PNG, JPEG, WBMP, GIF, gif]

總結

Java SE 6 的 GUI 增強雖非革命性,但解決了桌面應用開發中的實際痛點(啟動等待反饋、後台駐留、簡單輸入交互、圖片格式兼容),讓 Java 桌面應用更接近原生體驗。

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