Java addNotify()做什么?

Java addNotify()做什么?,java,Java,好的,我在看一个关于Java游戏开发的教程,他使用了一些代码,我不确定它是做什么的。我想知道,因为没有它,比赛就无法进行。我正在努力学习尽可能多的关于这个主题,我想知道它做什么。代码如下,谢谢您的帮助 public void addNotify() { super.addNotify(); if(thread == null) { thread = new Thread(this); addKeyListener(this); th

好的,我在看一个关于Java游戏开发的教程,他使用了一些代码,我不确定它是做什么的。我想知道,因为没有它,比赛就无法进行。我正在努力学习尽可能多的关于这个主题,我想知道它做什么。代码如下,谢谢您的帮助

public void addNotify() {
    super.addNotify();
    if(thread == null) {
        thread = new Thread(this);
        addKeyListener(this);
        thread.start();
    }
}

通过将此容器连接到本机屏幕,使其可显示 资源。使容器可显示将导致其所有 孩子们可以被显示出来。此方法由内部调用 工具箱,不应由程序直接调用

通知此组件它现在有一个父组件。当这 方法时,父组件链将使用 键盘动作事件侦听器。此方法由工具箱调用 内部调用,不应由程序直接调用

好吧,但那是什么意思

基本上,
Container
中的
addNotify
设置组件内部用于跟踪和处理事件的事件调度器/监视器。它还将调用
addNotify
,以调用它所包含的所有子组件

JComponent
中的
addNotify
触发
祖先
属性更改事件,并为组件设置焦点横向和键绑定

当一个组件被添加到一个可显示的容器(一个连接到本地对等方的容器)时,
Container#addImpl
调用这些方法。这为他们提供了组件已添加到本地对等方的通知

这是了解您的组件已添加到可显示上下文并将很快进行布局和绘制的好方法


同样,还有一个
removeNotify
用于从可显示上下文中删除组件或其父容器。

您认为它做什么?我不确定这就是为什么我要问这个问题。我看到它创建了一个线程,但为什么它如此重要。它传递给线程的是什么?@SotiriosDelimanolis你在我每天看到的20%的问题上都发表了这样的评论。addNotify()java的谷歌排名前十的搜索结果中有这样一句话:“如果你真的想知道它的功能,请阅读源代码。”在谷歌排名前十的搜索结果中,没有一个明确且写得很好的答案来回答这个问题。因此,这是一个很好的机会,让人们在这里寻找答案,并发展我们的社区。用“我想它能做到……我看了这里,这里,这里……”这样冗长的回答未必更好。简短、简洁的问题可能有效。@Rusher OP没有指定
addNotify()
的来源。因此,我们可以假设它不是某些标准API的一部分。因此,这个问题相当于:“fooBar()做什么?”没有更多细节,对任何人都没有帮助。我在评论中提出的这些问题旨在促使OP在正确的位置寻找提示。@user2892875这是一个非常有用的方法,不要搞砸了;)听起来就是这样。我就不管了,非常感谢你的帮助!