【问题标题】:Java attach JFrame to a running application window?Java将JFrame附加到正在运行的应用程序窗口?
【发布时间】:2014-06-30 02:05:38
【问题描述】:

如何将右上角的 JFrame 附加到另一个应用程序打开的窗口并在调整大小时保持不变?有可能吗?

这是我想要完成的图表:

感谢您的帮助!如果无法做到这一点,是否有替代方案

获取窗口大小/位置并相应设置我自己的 jframe 的方法?

【问题讨论】:

  • 我不这么认为。为什么?而且,如果 Skype 没有运行怎么办?
  • 我正在检查进程以查看 Skype 是否打开。它只适用于我写这篇文章的某个应用程序。我一直在使用的替代方法是系统托盘菜单,但这会更方便。
  • SWT Widgets 中可能有东西。
  • @ElliottFrish 有什么特别值得我寻找的吗?
  • 也许看看“BrowserExample”和“CustomControlExample”。我仍然不确定这是否 100% 可能。

标签: java macos swing jframe system-tray


【解决方案1】:

您要求 Java 修改已经运行的非 Java 程序,而对于这些类型的问题,Java 并不是最好的工具。请理解,Java 的主要优势之一是它能够在多个平台上以不变的方式运行已编译的代码。这种优势也带来了一个弱点:Java 必须尽可能地与操作系统无关,因此,当代码需要适应操作系统时,它不是一个好工具。

替代方案:几乎可以允许轻松调用操作系统的任何其他语言。

不要误会我的意思,你可以用 Java 做一些类似的事情,但它需要你跳过使用其他工具时不需要的障碍。

【讨论】:

  • 我唯一的替代语言是 C#,即使这样也只是用于 Unity 游戏开发。 Java 是我的主要语言。我不介意跳圈!你能给我指个方向吗?
  • @ThatGuy343:考虑到我的德鲁特人,我宁愿用 C# 做这种事情,也不愿用 Java。使用 Java,您需要查找 JNI 或(我的偏好)JNA。使用 Swing 的另一个困难是它使用轻量级组件,这些组件可能无法与正在运行的非 Java 应用程序的重量级组件很好地交互。
  • @HovercraftFullOfEels 到目前为止,我编写的应用程序处理进程和 sql 数据库池。我不太习惯在 C# 中这样做。
  • 如果没有其他解决方案,那么我将把它标记为答案,在 Java 中似乎不太可行。
  • @ThatGuy343:哦,这样的事情可以做到,但同样,它需要 JNI 或(我更喜欢)JNA,或其他一些允许 Java 接近操作系统的工具。跨度>
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 2019-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多