程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 代碼分享:實現系統托盤效果

代碼分享:實現系統托盤效果

編輯:關於JAVA

代碼說明:

在桌面工具欄上顯示托盤


代碼片段:

  1. import Java.awt.AWTException;
  2. import Java.awt.Image;
  3. import Java.awt.MenuItem;
  4. import Java.awt.PopupMenu;
  5. import Java.awt.SystemTray;
  6. import Java.awt.Toolkit;
  7. import Java.awt.TrayIcon;
  8. import Java.awt.event.ActionEvent;
  9. import Java.awt.event.ActionListener;
  10. import Java.awt.event.MouseEvent;
  11. import Java.io.UnsupportedEncodingException;
  12. import Java.Net.URL;
  13. import Javax.swing.ImageIcon;
  14. import Javax.swing.JFrame;
  15. import Javax.swing.JLabel;
  16. public class SystemTrayDemo extends JFrame{
  17. private TrayIcon trayIcon = null;
  18. public SystemTrayDemo(){
  19. this.setTitle("系統托盤");
  20. jbInit();
  21. this.setSize(200, 250);
  22. this.setLocation(300, 300);
  23. }
  24. public void jbInit(){
  25. if(SystemTray.isSupported()){ //檢查當前系統是否支持系統托盤
  26. SystemTray tray = SystemTray.getSystemTray();//獲取表示桌面托盤區的 SystemTray 實例。
  27. Image image = Toolkit.getDefaultToolkit().getImage("newrobot1_256.png");
  28. PopupMenu popupMenu = new PopupMenu();
  29. MenuItem exitItem = new MenuItem("exit");
  30. System.out.println(exitItem.getFont());
  31. MenuItem menuItema = new MenuItem("menu a");
  32. MenuItem menuItemb = new MenuItem("menu b");
  33. MenuItem menuItemc = new MenuItem("menu c");
  34. MenuItem menuItemd = new MenuItem("menu d");
  35. exitItem.addActionListener(new ActionListener(){
  36. public void actionPerformed(ActionEvent e) {
  37. try{
  38. System.exit(0);
  39. }catch(Exception ex) {
  40. ex.printStackTrace();
  41. }
  42. }
  43. });
  44. popupMenu.add(menuItema);
  45. popupMenu.add(menuItemb);
  46. popupMenu.add(menuItemc);
  47. popupMenu.add(menuItemd);
  48. popupMenu.add(exitItem);
  49. trayIcon = new TrayIcon(image, "系統托盤{thu}", popupMenu);
  50. trayIcon.addMouseListener(new Java.awt.event.MouseAdapter(){
  51. @Override
  52. public void mouseClicked(MouseEvent e) {
  53. if(e.getClickCount()==2){
  54. //注意下面的API調用,這個可以給用戶提示信息
  55. trayIcon.displayMessage("message", "double click",
  56. TrayIcon.MessageType.INFO);
  57. showIT(true);
  58. }
  59. }
  60. });
  61. //注意下面這個API調用,能夠保證使用的圖標被縮放到合適的比例
  62. trayIcon.setImageAutoSize(true);
  63. try{
  64. tray.add(trayIcon); // 將 TrayIcon 添加到 SystemTray。
  65. } catch (AWTException e) {
  66. System.err.println(e);
  67. }
  68. }else{
  69. System.out.println("你的系統不支持系統托盤");
  70. }
  71. //下面這個部分是具體的業務邏輯
  72. ImageIcon icon = new ImageIcon();
  73. try{
  74. URL url = new URL("newrobot1_256.png");
  75. icon = new ImageIcon(url);
  76. }catch(Exception e){
  77. }
  78. JLabel label = new JLabel();
  79. label.setIcon(icon);
  80. this.add(label);
  81. }
  82. public void showIT(boolean visable){
  83. if(this.isVisible() != visable)
  84. this.setVisible(visable);
  85. }
  86. public static void main(String[] args) {
  87. Javax.swing.SwingUtilitIEs.invokeLater(new Runnable(){
  88. public void run(){
  89. new SystemTrayDemo().setVisible(true);
  90. }
  91. });
  92. }
  93. }


【效果圖】

原文鏈接:http://www.oschina.Net/code/snippet_188162_8173

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved