Eclipse 自动完成功能不起作用...仅适用于 AWT? [复制]

Posted

技术标签:

【中文标题】Eclipse 自动完成功能不起作用...仅适用于 AWT? [复制]【英文标题】:Eclipse Autocomplete not Working... Only for AWT? [duplicate] 【发布时间】:2021-11-29 07:57:35 【问题描述】:

标题几乎解释了它。

自动完成在 Eclipse 中不起作用,但只有当我在与 java.awt 相关的对象上使用它时。从 Object 覆盖的方法出现了,但仅此而已。

Here's an example

它发生在每个项目中,而不是一个特定的项目。我试过重新安装Eclipse,没有用。任何帮助表示赞赏。

【问题讨论】:

不知道。对不起。但无论如何,您可能不应该再使用 AWT。它在很大程度上被 JFC/Swing 所取代。这在很大程度上被 JavaFX 所取代。您选择使用 AWT 的任何特殊原因? @ElliottFrisch 请参阅 Dominik 对答案的评论:“在 java.awt 包中定义的类(如 Shape 或 LayoutManager)也用于 Swing 应用程序,因此即使是那些没有编程 AWT GUI 的类可能会遇到这个问题” 【参考方案1】:

awt 包含 List 类 (java.awt.List)。

这是一场彻头彻尾的灾难。 99.9995872858% 的时间你输入List 并点击自动完成,你只是想让eclipse自动导入java.util.List,相反,直到最新版本,它弹出一个非模态对话框:你的意思是java.awt.List还是java.util.List

程序员,作为他们惯常的懒惰/无能的自我,对此抱怨不已。这对他们来说有点愚蠢。 eclipse中有一个简单的设置来禁止整个包,因此它几乎不会出现在任何地方:不在“打开类型”对话框中,也不在自动完成中。这就是“类型过滤器”功能,它已经存在多年了。

但程序员决定继续抱怨而不是添加设置。

考虑到这种情况,现在应该可以理解了:

java.awt.* 现在在此禁令列表中默认

但是,你独一无二的雪花,你找到了时光机或冷冻睡眠胶囊,沉睡了 20 年的历史。显然,还有什么其他可能的解释表明您仍在使用 AWT?

无论如何,只要把java.awt关闭那个禁止名单,一切都会好起来的。

打开您的 Eclipse 工作区首选项,在过滤器框中输入“类型过滤器”。您正在寻找设置java > Appearance > Type Filters。点击那个,然后取消选中java.awt

【讨论】:

感谢您的解决方案!在 java.awt 包中定义的类(如 ShapeLayoutManager)也用于 Swing 应用程序,因此即使是那些没有编写 AWT GUI 的程序也可能会遇到这个问题。 不要忘记 Rectangle、Dimension 等... 我也是这样的雪花。而java.awt又如此强大,看看java.awt.Robot就知道了。而对于swing,你还需要基类作为Container。只是将组件添加到 JFrame。或者添加一个窗口状态监听器。所以AWT还是很有用的。尽管它很旧。我真的很震惊他们将 java.awt 列入禁令列表只是“为了好玩”。

以上是关于Eclipse 自动完成功能不起作用...仅适用于 AWT? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse 自动完成功能不起作用

Eclipse CDT 自动完成功能不起作用

自动完成在 Visual Studio Code 中的 ASP.NET Core 5 Razor Tag Helper 中不起作用

JPA 自动完成功能在 Intellij spring-boot kotlin 项目中不起作用

Youtube 嵌入视频:自动播放功能在 iphone 中不起作用

ListView:setItemChecked 仅适用于标准 ArrayAdapter - 在使用自定义 ArrayAdapter 时不起作用?