栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Java左键打开任务栏图标上的popup(Menu)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Java左键打开任务栏图标上的popup(Menu)

您实际上缺少的是显示PopupMenu的父组件。实现此目的的一种方法是使用“不可见”框架(实际上是可见的,但具有0边界且未修饰,因此您看不到它),如下所示:

import java.awt.AWTException;import java.awt.CheckboxMenuItem;import java.awt.frame;import java.awt.Menu;import java.awt.MenuItem;import java.awt.PopupMenu;import java.awt.SystemTray;import java.awt.Toolkit;import java.awt.TrayIcon;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.net.MalformedURLException;import java.net.URL;public class MyTaskTray {    public static void main(String arg[]) throws MalformedURLException {        final frame frame = new frame("");        frame.setUndecorated(true);        // Check the SystemTray is supported        if (!SystemTray.isSupported()) { System.out.println("SystemTray is not supported"); return;        }        final TrayIcon trayIcon = new TrayIcon(Toolkit.getDefaultToolkit().getImage(     new URL("http://home.comcast.net/~supportcd/Icons/Java_Required.jpg")), "Library Drop");        final SystemTray tray = SystemTray.getSystemTray();        // Create a pop-up menu components        final PopupMenu popup = createPopupMenu();        trayIcon.setPopupMenu(popup);        trayIcon.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) {     if (e.getButton() == MouseEvent.BUTTON1) {         frame.add(popup);         popup.show(frame, e.getXonScreen(), e.getYonScreen());     } }        });        try { frame.setResizable(false); frame.setVisible(true); tray.add(trayIcon);        } catch (AWTException e) { System.out.println("TrayIcon could not be added.");        }    }    protected static PopupMenu createPopupMenu() {        final PopupMenu popup = new PopupMenu();        MenuItem aboutItem = new MenuItem("about");        CheckboxMenuItem cb1 = new CheckboxMenuItem("Set auto size");        CheckboxMenuItem cb2 = new CheckboxMenuItem("Set tooltip");        Menu displayMenu = new Menu("Display");        MenuItem errorItem = new MenuItem("Error");        MenuItem warningItem = new MenuItem("Warning");        MenuItem infoItem = new MenuItem("Info");        MenuItem noneItem = new MenuItem("None");        MenuItem exitItem = new MenuItem("Exit");        // Add components to pop-up menu        popup.add(aboutItem);        popup.addSeparator();        popup.add(cb1);        popup.add(cb2);        popup.addSeparator();        popup.add(displayMenu);        displayMenu.add(errorItem);        displayMenu.add(warningItem);        displayMenu.add(infoItem);        displayMenu.add(noneItem);        popup.add(exitItem);        return popup;    }}

从Java 1.7开始,您可以添加以下行以从任务栏中删除应用程序栏:

frame.setType(Type.UTILITY);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/428325.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号