JavaWebStart程序设置窗口始终置顶的可行性咨询
结论
该需求完全可以实现,根据你是否能修改程序源代码,有两种可选方案:
方案1:无需修改现有程序的快速实现方案(适合无Java开发能力的场景)
你不需要动现有jnlp配置或者Java程序代码,直接用Windows端的外置工具实现窗口置顶即可:
- 可以使用AutoHotkey轻量工具,编写一行简单的脚本即可实现自定义快捷键触发任意窗口置顶,效果和任务管理器的始终置顶完全一致,部署成本极低。
- 也可以直接使用免安装的窗口置顶小工具,这类工具体积大多不到1M,启动后选中目标程序窗口点一下就能锁定置顶,不需要任何代码操作。
另外你可以先尝试在现有jnlp的<application-desc>节点下新增一行<argument>AlwaysOnTop=yes</argument>测试,从你现有配置里已经预留的Resizable、Closeable这类窗口控制参数来看,原开发方有可能已经预留了置顶参数的支持,如果刚好支持的话不需要做任何其他改动就能生效。
方案2:修改Java程序的永久内置实现方案
如果需要把置顶功能做到程序里默认生效,只需要修改少量Java代码即可:
- 首先确认你能拿到
programmanager.ProgramManager主类的源代码,Java从1.4版本开始就原生支持窗口置顶功能,刚好你的jnlp配置要求的Java运行环境版本就是1.4+,完全兼容,没有版本兼容问题。 - 只需要在主程序窗口初始化的逻辑中,给顶层窗口对象加一行
setAlwaysOnTop(true)代码即可。 - 修改完成后重新编译打包替换现有的
ProgramManager.jar就可以生效,你的jnlp已经配置了<all-permissions/>权限,不会有Java Web Start的安全拦截问题。
内容的提问来源于stack exchange,提问作者JR_
相关产品推荐
相关产品推荐

