{"id":906,"date":"2019-02-17T18:12:55","date_gmt":"2019-02-17T09:12:55","guid":{"rendered":"https:\/\/chat-messenger.com\/?p=906"},"modified":"2019-07-03T00:05:55","modified_gmt":"2019-07-02T15:05:55","slug":"trayicon-blink","status":"publish","type":"post","link":"https:\/\/chat-messenger.com\/de\/blog\/java\/trayicon-blinkt","title":{"rendered":"Java-Taskleistensymbol anzeigen\/blinken"},"content":{"rendered":"<h2><a name=\"0\">in Java<strong>Taskleiste<\/strong>(<strong>System Tray<\/strong>) Symbol<strong>Anzeige\/Blinken<\/strong><\/a><\/h2>\n<p>in Java<strong>Taskleiste<\/strong>(<strong>System Tray<\/strong>)-Symbol wird angezeigt und blinkt.<\/p>\n<p>Dienstprogrammklassen sind neue Funktionen, die in Java SE 6 Mustang hinzugef\u00fcgt wurden. <strong>java.awt.SystemTray<\/strong> ,,<strong>java.awt.TrayIcon<\/strong> Verwenden Sie Klassen. Wir stellen Ihnen auch eine Beispielanwendung vor, damit Sie verstehen, wie Sie sie verwenden.<\/p>\n<h3><a name=\"1\">Funktion der Taskleiste (Taskleiste).<\/a><\/h3>\n<p>Die Taskleiste (Taskleiste) ist eine Reihe kleiner Symbole, die sich unten rechts auf Ihrem Computerbildschirm befinden. In Java SE 6 wurden die folgenden Klassen hinzugef\u00fcgt, um die Taskleistenfunktionalit\u00e4t zu nutzen.<\/p>\n<ul>\n<li><strong>java.awt.SystemTray<\/strong><br \/>\nDie SystemTray-Klasse repr\u00e4sentiert die Desktop-Taskleiste.<\/li>\n<li><strong>java.awt.TrayIcon<\/strong><br \/>\nDas TrayIcon-Objekt stellt ein Taskleistensymbol dar, das der Taskleiste hinzugef\u00fcgt werden kann.<\/li>\n<\/ul>\n<h3>So erstellen Sie ein blinkendes Symbol<\/h3>\n<p>M\u00f6glicherweise m\u00f6chten Sie die folgende Website verwenden, um ein blinkendes Symbol zu erstellen.<br \/>Erstellen Sie ein blinkendes Symbol, indem Sie ein lokales Symbol hochladen.<br \/>\n<a href=\"https:\/\/www.bannerkoubou.com\/anime\/\" target=\"_blank\"><strong>https:\/\/www.bannerkoubou.com\/anime\/<\/strong><\/a><\/p>\n<h2 class=\"common_title\"><a name=\"3\">Beispielanwendung<\/a><\/h2>\n<p><img src=\"https:\/\/chat-messenger.com\/images\/task_tray.jpg\" alt=\"Taskleiste Systemleiste java.awt.SystemTray java.awt.TrayIcon\" border=\"0\"><br \/>\n<br clear=\"all\"><\/p>\n<p>\nDie Beispielanwendung verwendet die TaskTray-Dienstprogrammklasse TaskTrayUtil, um die folgenden Funktionen zu implementieren.<\/p>\n<ol>\n<li>Beim Start<strong>Taskleiste<\/strong>Zu<strong>Symbol<\/strong>Zeigen.\n<\/li>\n<li>Klicken Sie auf die [blinkende Schaltfl\u00e4che], um<strong>Taskleiste<\/strong>Das Symbol blinkt.<br \/>\n\tDer Ballon zeigt auch die Nachricht \u201eHolt mich hier raus!!\u201c an.<\/li>\n<li>Klicken Sie auf die Schaltfl\u00e4che \u201eAbbrechen\u201c, um das Blinken des Symbols abzubrechen.<\/li>\n<li><strong>Taskleiste<\/strong>Klicken Sie einmal mit der linken Maustaste auf das Symbol, um das Hauptfenster auf dem Desktop anzuzeigen.<\/li>\n<li><strong>Taskleiste<\/strong>Klicken Sie mit der rechten Maustaste auf das Symbol, um das Standardmen\u00fc \u201ePopupMenu\u201c anzuzeigen.<\/li>\n<li>Wenn das Hauptfenster minimiert ist<strong>Taskleiste<\/strong>Gespeichert in.<\/li>\n<\/ol>\n<h2 class=\"common_title\"><a name=\"4\">Holen Sie sich den Quellcode<\/a><\/h2>\n<p><script type=\"text\/javascript\" src=\"https:\/\/chat-messenger.com\/js\/common.js?dd12sssas2223\" charset=\"UTF-8\"><\/script><br \/>\n<script type=\"text\/javascript\"> writePR(); <\/script><\/p>\n<p>Den Quellcode erhalten Sie weiter unten. Bitte speichern Sie beim Kompilieren au\u00dferdem das folgende Symbol am selben Ort wie den Quellcode.<\/p>\n<ul>\n<li><strong>Normales Symbol<\/strong>\u3000<a href=\"https:\/\/chat-messenger.com\/images\/tray_icon.gif\" target=\"_blank\"><img src=\"https:\/\/chat-messenger.com\/images\/tray_icon.gif\" alt=\"\" border=\"0\"><\/a><\/li>\n<li><strong>blinkendes Symbol<\/strong>\u3000<a href=\"https:\/\/chat-messenger.com\/images\/tray_icon_light.gif\" target=\"_blank\"><img src=\"https:\/\/chat-messenger.com\/images\/tray_icon_light.gif\" alt=\"\" border=\"0\"><\/a><\/li>\n<\/ul>\n<p><textarea readonly=\"readonly\" style=\"font-size: 13px;height: 400px;\" class=\"src\" onclick=\"this.focus();this.select()\">import java.awt.AWTException;<br \/>\nimport java.awt.Dimension;<br \/>\nimport java.awt.FlowLayout;<br \/>\nimport java.awt.Image;<br \/>\nimport java.awt.MenuItem;<br \/>\nimport java.awt.PopupMenu;<br \/>\nimport java.awt.SystemTray;<br \/>\nimport java.awt.TrayIcon;<br \/>\nimport java.awt.event.ActionEvent;<br \/>\nimport java.awt.event.ActionListener;<br \/>\nimport java.awt.event.MouseAdapter;<br \/>\nimport java.awt.event.MouseEvent;<br \/>\nimport java.awt.event.MouseListener;<br \/>\nimport java.awt.event.WindowAdapter;<br \/>\nimport java.awt.event.WindowEvent;<br \/>\nimport java.awt.event.WindowListener;<\/p>\n<p>import javax.swing.ImageIcon;<br \/>\nimport javax.swing.JButton;<br \/>\nimport javax.swing.JFrame;<br \/>\nimport javax.swing.JPanel;<br \/>\nimport javax.swing.SwingUtilities;<br \/>\nimport javax.swing.UIManager;<\/p>\n<p>\/**<br \/>\n * Das Taskleistensymbol (Taskleiste) in Java anzeigen\/blinken lassen.<br \/>\n *<br \/>\n * \u25c6 \u00dcberblick \u00fcber diese Klasse<br \/>\n * Die TaskTray-Klasse ist ein Dienstprogramm, das die Taskleiste verwaltet.<br \/>\n * Bietet die folgenden Funktionen:<br \/>\n * \u30fbZeigen Sie das Symbol in der Taskleiste an.<br \/>\n * \u2013 Zeigt eine Popup-Nachricht in der Taskleiste an.<br \/>\n * \u2013 Lassen Sie die Taskleiste blinken.<br \/>\n *<br \/>\n * \u25c6 Verwendung<br \/>\n * \u00dcbergeben Sie die Ziel-JFrame-Klasse an das Methodenargument unten.<br \/>\n * \u30fbcreateTray(JFrame targetFrame)<br \/>\n * \u30fbcreateTray(endg\u00fcltiger JFrame-Zielrahmen, Bildbild, PopupMenu-Men\u00fc)<br \/>\n *<br \/>\n *\/<br \/>\n\u00f6ffentliche Klasse TaskTrayUtil {<br \/>\n    privater statischer JFrame-Frame;<br \/>\n    privates statisches PopupMenu defaultMenu;<br \/>\n    privates statisches TrayIcon TrayIcon;<br \/>\n    privates statisches SystemTray Tray = SystemTray.getSystemTray();<br \/>\n    privates statisches Objekt INSTANCE_LOCK = new Object();<\/p>\n<p>    \/**<br \/>\n     * Ausf\u00fchrungsbeispiel<br \/>\n     * @param args<br \/>\n     *\/<br \/>\n    public static void main(String[] args) {<br \/>\n      versuchen {<br \/>\n          \/\/ LookAndFeel auf Windows setzen<br \/>\n          UIManager.setLookAndFeel(<br \/>\n                  UIManager.getSystemLookAndFeelClassName());<br \/>\n          \/\/ normales Symbol<br \/>\n          endg\u00fcltiges Bild img = neues ImageIcon(<br \/>\n                  TaskTrayUtil.class.getResource(<br \/>\n                          \u201etray_icon.gif\u201c)).getImage();<br \/>\n          letzter JFrame-Frame =<br \/>\n              neuer JFrame (\u201eSymbol in der Taskleiste anzeigen\/blinken\u201c);<br \/>\n          frame.setSize(300, 100);<br \/>\n          frame.setIconImage(img);<br \/>\n          \/\/ In der Taskleiste speichern, wenn das Fenster minimiert ist<br \/>\n          \/\/ WindowListener-Klasse wie gezeigt hinzuf\u00fcgen.<br \/>\n          frame.addWindowListener(new WindowAdapter() {<br \/>\n              public void windowIconified(WindowEvent e) {<br \/>\n                  frame.setVisible(false);<br \/>\n              }<br \/>\n          });<\/p>\n<p>          JPanel jPanel = new JPanel();<br \/>\n          jPanel.setLayout(new FlowLayout());<br \/>\n          jPanel.setSize(new Dimension(219, 70));<br \/>\n          \/\/ blinkendes Symbol<br \/>\n          endg\u00fcltiges Bild imgLight =<br \/>\n              neues ImageIcon(TaskTrayUtil.class.getResource(<br \/>\n                      \u201etray_icon_light.gif\u201c)).getImage();<br \/>\n          JButton lightButton = new JButton(\u201cblink\u201d);<br \/>\n          lightButton.addActionListener(new ActionListener(){<br \/>\n              public void actionPerformed(ActionEvent e) {<br \/>\n                  onAndOffLight(imgLight, null);<br \/>\n                  displayMessage(\u201eNachricht\u201c, \u201eHolt mich hier raus!!\u201c);<br \/>\n              }<br \/>\n          });<br \/>\n          JButton cancelButton = new JButton(\u201ccancel\u201d);<br \/>\n          cancelButton.addActionListener(new ActionListener(){<br \/>\n              public void actionPerformed(ActionEvent e) {<br \/>\n                  replaceImageWithDelete(img);<br \/>\n              }<br \/>\n          });<br \/>\n          jPanel.add(lightButton, null);<br \/>\n          jPanel.add(cancelButton, null);<br \/>\n          frame.add(jPanel);<br \/>\n          \/\/ Verarbeitung beenden.<br \/>\n          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br \/>\n          \/\/ Den Rahmen in der Mitte des Bildschirms anzeigen.<br \/>\n          frame.setLocationRelativeTo(null);<br \/>\n          \/\/ Taskleiste erstellen.<br \/>\n          TaskTrayUtil.createTray(frame);<br \/>\n          frame.setVisible(true);<\/p>\n<p>      } Catch (Ausnahme e) {<br \/>\n          e.printStackTrace();<br \/>\n      }<br \/>\n    }<br \/>\n    \/**<br \/>\n     *<br \/>\n     *\/<br \/>\n    statisch {<br \/>\n        createPopupMenu();<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Erstellt ein Standard-PopupMenu-Men\u00fc, das in der Taskleiste angezeigt wird.<br \/>\n     *Die folgenden Men\u00fcs sind verf\u00fcgbar.<br \/>\n     * \u30fb\u201eAus der Taskleiste entfernen\u201c<br \/>\n     * Verschieben Sie die Zielanwendung von der Taskleiste auf den Desktop<br \/>\n     * Hol es raus.<br \/>\n     * (Aktivieren Sie das Fenster und bringen Sie es nach vorne.)<br \/>\n     * - Beenden Sie die zu beendende Anwendung.<br \/>\n     *\/<br \/>\n    private static void createPopupMenu() {<br \/>\n        MenuItem getTrayItem = new MenuItem(\u201cAus Taskleiste entfernen\u201d);<br \/>\n        getTrayItem.addActionListener(new ActionListener() {<br \/>\n            public void actionPerformed(ActionEvent e) {<br \/>\n                aktiv();<br \/>\n            }<br \/>\n        });<br \/>\n        MenuItem exitItem = new MenuItem(\u201cExit\u201d);<br \/>\n        exitItem.addActionListener(new ActionListener() {<br \/>\n            public void actionPerformed(ActionEvent e) {<br \/>\n                removeTrayIcon();<br \/>\n                TaskTrayUtil.frame.setVisible(false);<br \/>\n                TaskTrayUtil.frame.dispose();<br \/>\n                System.exit(0);<br \/>\n            }<br \/>\n        });<br \/>\n        defaultMenu = new PopupMenu();<br \/>\n        defaultMenu.add(getTrayItem);<br \/>\n        defaultMenu.add(exitItem);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Erstellen Sie ein Taskleistensymbol und f\u00fcgen Sie es der Taskleiste hinzu.<br \/>\n     * Setzen Sie einen Listener f\u00fcr Ereignisse, die auf dem Symbol auftreten, auf targetFrame<br \/>\n     Einstellen *.<br \/>\n     * Das Ereignis tritt hier ein, wenn auf das Taskleistensymbol doppelgeklickt wird.<br \/>\n     * Extrahieren Sie die Zielanwendung.<br \/>\n     * @param targetFrame Zielanwendung<br \/>\n     *\/<br \/>\n    public static void createTray(JFrame targetFrame) {<br \/>\n        createTray(targetFrame, null, null);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Erstellen Sie ein Taskleistensymbol und f\u00fcgen Sie es der Taskleiste hinzu.<br \/>\n     *<br \/>\n     * @param targetFrame Zielanwendung<br \/>\n     * @param image Bild, das auf dem Taskleistensymbol angezeigt werden soll.<br \/>\n     * Wenn null, kann es mit getIconImage() von targetFrame abgerufen werden<br \/>\n     * Verwenden Sie Bildbilder.<br \/>\n     * @param-Men\u00fc PopupMenu zur Anzeige in der Taskleiste.<br \/>\n     * Wenn null, wird das Standard-PopupMenu angezeigt.<br \/>\n     *\/<br \/>\n    public static void createTray(final JFrame targetFrame, Image image,<br \/>\n            PopupMenu-Men\u00fc) {<br \/>\n        \/\/ Beenden, wenn die Taskleiste nicht unterst\u00fctzt wird.<br \/>\n        if (!SystemTray.isSupported()) {<br \/>\n            zur\u00fcckkehren;<br \/>\n        }<br \/>\n        TaskTrayUtil.frame = targetFrame;<br \/>\n        if (image == null) {<br \/>\n            image = targetFrame.getIconImage();<br \/>\n        }<br \/>\n        if (menu == null) {<br \/>\n            menu = defaultMenu;<br \/>\n        }<br \/>\n        TrayIcon = new TrayIcon(image, targetFrame.getTitle(), menu);<br \/>\n        TrayIcon.setImageAutoSize(true);<br \/>\n        TrayIcon.addMouseListener(new MouseAdapter(){<br \/>\n            public void mouseClicked(MouseEvent e) {<br \/>\n                if (SwingUtilities.isLeftMouseButton(e)) {<br \/>\n                    aktiv();<br \/>\n                }<br \/>\n            }<br \/>\n        });<br \/>\n        versuchen {<br \/>\n            Tray.add(trayIcon);<br \/>\n        } Catch (AWTException e1) {<br \/>\n            e1.printStackTrace();<br \/>\n        }<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Symbol aus der Taskleiste entfernen.<br \/>\n     * Muss aufgerufen werden, wenn die Anwendung beendet wird.<br \/>\n     *\/<br \/>\n    public static void removeTrayIcon() {<br \/>\n        Tray.remove(trayIcon);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Lassen Sie das Taskleistensymbol blinken.<br \/>\n     * @param msg, falls erforderlich, wenn auf das blinkende Symbol geklickt wird<br \/>\n     * Legen Sie die anzuzeigende Nachricht fest.<br \/>\n     *\/<br \/>\n    public static void onAndOffLight(Image lightImg, String msg) {<br \/>\n        replaceImage(lightImg);<br \/>\n        ChangeLightImgAdapter adap =<br \/>\n            new TaskTrayUtil().new ChangeLightImgAdapter(msg);<br \/>\n        TrayIcon.addMouseListener(adap);<br \/>\n        frame.addWindowListener(adap);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * \u00c4ndern Sie das Taskleistensymbol.<br \/>\n     * @param image Nur \u00e4ndern, wenn es vom aktuellen Symbol abweicht.<br \/>\n     *\/<br \/>\n    public static void replaceImage(Image image) {<br \/>\n        synchronisiert (INSTANCE_LOCK) {<br \/>\n            if (!image.equals(trayIcon.getImage())) {<br \/>\n                TrayIcon.setImage(image);<br \/>\n            }<br \/>\n        }<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * \u00c4ndern Sie das Taskleistensymbol.<br \/>\n     * *Wenn Sie das aus irgendeinem Grund blinkende Symbol wiederherstellen m\u00f6chten,<br \/>\n     * Es scheint nutzlos zu sein, es sei denn, Sie l\u00f6schen es mit {@link SystemTray#remove(TrayIcon)}).<br \/>\n     * @param image Nur \u00e4ndern, wenn es vom aktuellen Symbol abweicht.<br \/>\n     *\/<br \/>\n    public static void replaceImageWithDelete(Image image) {<br \/>\n        synchronisiert (INSTANCE_LOCK) {<br \/>\n            if (!image.equals(trayIcon.getImage())) {<br \/>\n                Tray.remove(trayIcon);<br \/>\n                TrayIcon.setImage(image);<br \/>\n                versuchen {<br \/>\n                    Tray.add(trayIcon);<br \/>\n                } Catch (Ausnahme e) {<br \/>\n                    e.printStackTrace();<br \/>\n                }<br \/>\n            }<br \/>\n        }<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Zeigt eine Popup-Nachricht in der Taskleiste an.<br \/>\n     * @param-Beschriftung<br \/>\n     * @param-Text<br \/>\n     *\/<br \/>\n    public static void displayMessage(String caption, String text) {<br \/>\n        if (caption != null || text != null) {<br \/>\n            TrayIcon.displayMessage(Beschriftung, Text,<br \/>\n                    TrayIcon.MessageType.INFO);<br \/>\n        }<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Verschieben Sie die Zielanwendung von der Taskleiste auf den Desktop<br \/>\n     * Hol es raus.<br \/>\n     *\/<br \/>\n    private static void active() {<br \/>\n        \/\/ Den Frame-Status auf den Normalzustand zur\u00fccksetzen.<br \/>\n        TaskTrayUtil.frame.setExtendedState(JFrame.NORMAL);<br \/>\n        TaskTrayUtil.frame.setAlwaysOnTop(true);<br \/>\n        TaskTrayUtil.frame.setVisible(true);<br \/>\n        TaskTrayUtil.frame.setAlwaysOnTop(false);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Ereignis, das generiert wird, wenn auf das blinkende Symbol geklickt wird<br \/>\n     * Listener-Klasse.<br \/>\n     *\/<br \/>\n    Die Klasse ChangeLightImgAdapter implementiert WindowListener, MouseListener {<br \/>\n        String lightImageText;<\/p>\n<p>        public ChangeLightImgAdapter(String lightImageText) {<br \/>\n            this.lightImageText = lightImageText;<br \/>\n        }<\/p>\n<p>        \/**<br \/>\n         * Wenn auf das Taskleistensymbol geklickt wird<br \/>\n         * Popup-Nachricht anzeigen.<br \/>\n         *\/<br \/>\n        public void mousePressed(MouseEvent e) {<br \/>\n            TaskTrayUtil.displayMessage(null, lightImageText);<br \/>\n        }<\/p>\n<p>        \/**<br \/>\n         * Blinkte, als die Zielanwendung aktiv wurde<br \/>\n         * Return-Symbol.<br \/>\n         *\/<br \/>\n        public void windowActivated(WindowEvent e) {<br \/>\n            TaskTrayUtil.replaceImageWithDelete(TaskTrayUtil.frame<br \/>\n                    .getIconImage());<br \/>\n            TaskTrayUtil.frame.removeWindowListener(this);<br \/>\n            TaskTrayUtil.trayIcon.removeMouseListener(this);<br \/>\n        }<\/p>\n<p>        public void windowClosed(WindowEvent e) {}<\/p>\n<p>        public void windowClosing(WindowEvent e) {}<\/p>\n<p>        public void windowDeactivated(WindowEvent e) {}<\/p>\n<p>        public void windowDeiconified(WindowEvent e) {}<\/p>\n<p>        public void windowIconified(WindowEvent e) {}<\/p>\n<p>        public void windowOpened(WindowEvent e) {}<\/p>\n<p>        public void mouseClicked(MouseEvent e) {}<\/p>\n<p>        public void mouseEntered(MouseEvent e) {}<\/p>\n<p>        public void mouseExited(MouseEvent e) {}<\/p>\n<p>        public void mouseReleased(MouseEvent e) {}<br \/>\n    }<br \/>\n}<br \/>\n<\/textarea><\/p>","protected":false},"excerpt":{"rendered":"<p>Anzeigen\/Blinken des Taskleistensymbols in Java [\u2026]<\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"swell_btn_cv_data":""},"categories":[19],"tags":[],"_links":{"self":[{"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/posts\/906"}],"collection":[{"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/comments?post=906"}],"version-history":[{"count":14,"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/posts\/906\/revisions"}],"predecessor-version":[{"id":3679,"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/posts\/906\/revisions\/3679"}],"wp:attachment":[{"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/media?parent=906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/categories?post=906"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chat-messenger.com\/de\/wp-json\/wp\/v2\/tags?post=906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}