我创建了一个

Java Swing应用程序,该应用程序没有可见的主窗口,但通过右键单击可通过其托盘图标进行控制.

我正在使用JPopupMenu,但是当我点击弹出菜单之外(例如在另一个应用程序的窗口或桌面上)时,JPopupMenu不会消失,这不是预期的行为.

最初我使用的是popupMenu,它按预期工作,但这不允许我在菜单中有图标.

如我所说,当我点击其他地方时,如何让它关闭?

谢谢!

//_Popup is your JPopupMenu, call this method before setting your popup to visible

public void armPopup()

{

if(_Popup != null)

{

Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener()

{

@Override

public void eventDispatched(AWTEvent event) {

if(event instanceof MouseEvent)

{

MouseEvent m = (MouseEvent)event;

if(m.getID() == MouseEvent.MOUSE_CLICKED)

{

_Popup.setVisible(false);

Toolkit.getDefaultToolkit().removeAWTEventListener(this);

}

}

if(event instanceof WindowEvent)

{

WindowEvent we = (WindowEvent)event;

if(we.getID() == WindowEvent.WINDOW_DEACTIVATED || we.getID() == WindowEvent.WINDOW_STATE_CHANGED)

{

_Popup.setVisible(false);

Toolkit.getDefaultToolkit().removeAWTEventListener(this);

}

}

}

}, AWTEvent.MOUSE_EVENT_MASK | AWTEvent.WINDOW_EVENT_MASK);

}

}

java 不退出_(Java)如果我在其外面点击,JPopupMenu将不会关闭相关推荐

  1. java取负数_[Java] 告别“CV 工程师”码出高效!(基础篇)

    作为一名资深的 CV 工程师,某天,当我再一次日常看见满屏的报错信息与键盘上已经磨的泛白的 Ctrl.C.V 这三个按键时,我顿悟了. 百度谷歌复制粘贴虽然很香,但是总是依靠前人种树,终会有一天失去乘 ...

  2. java控制语句练习题_[Java初探实例篇02]__流程控制语句知识相关的实例练习

    本例就流程控制语句的应用方面,通过三个练习题来深入学习和巩固下学习的流程控制语句方面的知识,设计到,if条件判断语句,switch多分支语句,for循环语句及其嵌套多层使用,while循环语句. 练习 ...

  3. java 文本压缩_[Java基础]Java使用GZIP进行文本压缩

    import java.io.IOException; import java.util.zip.GZIPOutputStream; import org.apache.commons.io.outp ...

  4. java private 对象_[Java笔记]类的所有构造器都是private权限,就一定没有办法实例化它的对象了么?...

    笔者以前学过C++语言.众所周知,C++也是一门面向对象程序设计语言.还记得当时在大学的时候,老师讲过这样的话:类的构造函数不应该设置成private权限,这样的话还怎么去实例化类的对象?当时也信以为 ...

  5. java resources 目录_[Java] 在 jar 文件中读取 resources 目录下的文件

    注意两点: 1. 将资源目录添加到 build path,确保该目录下的文件被拷贝到 jar 文件中. 2. jar 内部的东西,可以当作 stream 来读取,但不应该当作 file 来读取. 例子 ...

  6. java斗地主发牌_[Java源码]扑克牌——斗地主发牌实现

    --------------------------------------- --------------------------------------- ----------一个扑克牌核心和简单 ...

  7. java小朋友猜拳_[Java教程]Java猜拳小游戏(剪刀、石头、布)

    [Java教程]Java猜拳小游戏(剪刀.石头.布) 0 2015-09-29 08:00:04 import java.util.Random;import java.util.Scanner;pu ...

  8. java星空屏幕_[Java教程]窗口设置_星空网

    窗口设置 2016-04-13 0 /** * 这个是GUI的事例程序: * */ package w160412.wang.main;import java.awt.Color; import ja ...

  9. android手机 运行java程序退出_手机为什么程序退出还在运行怎么办

    1. 为什么手机程序后台关闭了还会自动再运行 安卓android后台的软件自动启动程序 - 使用android手机必读(精华中的精华)2011-08-25 16:06不用在意剩余内存的大小,其实很多人 ...

最新文章

  1. 先考学历还是先提升能力?
  2. syntaxerror是什么错误_【第1643期】自定义错误及扩展错误
  3. POJ 3691 DNA repair AC自动机 + DP
  4. Abp mysql guid_.NET生成多数据库有序Guid
  5. Zookeeper 生产实践的一些经验分享
  6. GitHub标星2.6万!Python算法新手入门大全
  7. 项目简单实用方式_组合替代继承_状态决定行为
  8. poj2976 Dropping tests(01分数规划 好题)
  9. 八个程序员必备的代码编辑器(附下载链接)
  10. java中使用grpc和protobuf
  11. android 自定义弹窗diss,Android中自定义PopupWindow,动态弹窗。
  12. 光伏等新能源信用风险事件频繁爆发
  13. android cursor相关的性能问题,Android Mms之:深入理解对话列表管理
  14. Q1:spring-boot中Controller路径无法被访问的问题
  15. Oracle非常规恢复(使用BBED跳过归档)
  16. 最短路问题——spfa算法
  17. directx 11 SDK
  18. 读《天才在左 疯子在右》有感
  19. SAP 财务月结之 外币评估(TCODE:FAGL_FC_VAL,S4版本用 FAGL_FCV)<转载>
  20. 脑科学磁共振成像(MRI)初学者必看——功能脑网络、小世界网络、FDR校正、脑电信号频率变换、模板、假设检验、广义线性模型、独立成分分析、影像组学、任务态和静息态方法汇总

热门文章

  1. 喂,搞那么难的算法面试题有必要么?
  2. 中国互联网大会首届智能网联论坛举行 数字技术驱动交通出行行业创新发展
  3. 抖音春晚红包百亿互动量级背后,火山引擎浮出水面
  4. 华为 AppGallery Connect 构建游戏分发能力,赋能游戏全生命周期
  5. 传统银行的战略转型之路,长沙银行迈向数据驱动提质年
  6. 都说人工智能入门难?但80%的人都错了……
  7. 被捧上天的 GPT-3,商业化之路怎么走?
  8. 2 年 6 个月 11 天,外包到阿里的修仙之路!| 原力计划
  9. 从 Ops 到 NoOps,阿里文娱智能运维的关键:自动化应用容量管理
  10. 微信「扫码支付」被诉侵犯专利权;苹果回应“iOS 13 频繁提醒 App 定位”;Python 2 退休 | 极客头条...