Salah satu aplikasi java yang harus selalu dijalankan misalnya adalah aplikasi SMS Gateway System. Aplikasi ini harus selalu dijalankan namun jika gui nya selalu tampil bisa mengganggu aktifitas lain. Untuk itu gui harus disembunyikan dan digantikan dengan icon pada system tray. Hal ini untuk menunjukan bahwa aplikasi kita tetap berjalan walaupun gui atau window utamanya tidak terlihat.
Di Java, kita juga bisa menggunakan fasilitas ini. disini kita menggunakan Class SystemTray. Namun Class ini terdapat p[ada Java dengan versi 6 atau yang terbaru. berikut contoh kode untuk menempatkan icon pada system tray:
package javadanphp; import java.awt.HeadlessException; import java.awt.Image; import java.awt.MenuItem; import java.awt.Panel; import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.TrayIcon; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import javax.swing.Icon; import javax.swing.JOptionPane; import javax.swing.plaf.metal.MetalIconFactory; /** * * @author Taopik Ridwan */ public class JavaTaskBar { public static void main(String[] args) throws Exception { TrayIcon icon = new TrayIcon(getImage(), "Java Tray Icon", createPopupMenu()); icon.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, "Agan melakukan Klik!"); } }); SystemTray.getSystemTray().add(icon); Thread.sleep(2000); icon.displayMessage("javadanphp.blogspot.com", "Silahkan klik disini", TrayIcon.MessageType.WARNING); } private static Image getImage() throws HeadlessException { Icon defaultIcon = MetalIconFactory.getTreeHardDriveIcon(); Image img = new BufferedImage(defaultIcon.getIconWidth(), defaultIcon.getIconHeight(), BufferedImage.TYPE_4BYTE_ABGR); defaultIcon.paintIcon(new Panel(), img.getGraphics(), 0, 0); return img; } /** * membuat popup menu yang akan ditampilkan ketika taskbar diklik * */ private static PopupMenu createPopupMenu() throws HeadlessException { PopupMenu menu = new PopupMenu(); MenuItem exit = new MenuItem("Keluar"); exit.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); menu.add(exit); return menu; } }
Hasilnya seperti ini:
Silahkan download sample projectnya disini.
Terima kasih sudah meluangkan waktu untuk mengunjungi blog ini.
0 komentar:
Posting Komentar