我应该始终使用requestFocusInWindow()而不是requestFocus()吗?

时间:2018-07-09 21:17:44

标签: java macos swing focus

我读到requestFocus()有时会失败,因为它是基于平台的。

一般的经验法则是始终使用requestFocusInWindow()吗?

顺便说一句,我的应用程序是专为macOS开发的。

1 个答案:

答案 0 :(得分:0)

  

我读到requestFocus()有时会失败,因为   基于平台的。

是的。这是对的。 From Java Docs the requestFocus()

  

请注意,不建议使用此方法,因为它的行为   与平台有关。相反,我们建议使用   requestFocusInWindow(boolean)。

由于不推荐依赖平台,因此建议您在Linux中构建,并且不会在Windows中按预期运行。

requestFocusInWindow()
  

此方法的焦点行为可以统一实现   平台,因此强烈建议开发人员使用此平台   尽可能在requestFocus上使用方法。依赖的代码   requestFocus对不同的对象可能表现出不同的焦点行为   平台。

我应该始终使用requestFocusInWindow()而不是requestFocus()吗?

这取决于。如果要让您的应用仅在特定的操作系统上运行,请使用requestFocus();如果要成为多平台,请使用requestFocusInWindow()

如有疑问,请务必进行证证。