の素人の定義を見つけようとしましたが、addNotify()
Googleを使用して実際に答えを得ることができません。
私の知る限りaddNotify()
、クラスでオーバーライドするときは、電話をかけsuper.addNotify();
て、その後何でもする必要があります。
私の質問は、addNotify()
自動的に実行されますか?それは何の目的であり、オーバーライドするとどうなりますか?さらに、なぜこのメソッドをオーバーライドしたいのですか?
ありがとう。
の素人の定義を見つけようとしましたが、addNotify()
Googleを使用して実際に答えを得ることができません。
私の知る限りaddNotify()
、クラスでオーバーライドするときは、電話をかけsuper.addNotify();
て、その後何でもする必要があります。
私の質問は、addNotify()
自動的に実行されますか?それは何の目的であり、オーバーライドするとどうなりますか?さらに、なぜこのメソッドをオーバーライドしたいのですか?
ありがとう。
私の質問は、addNotify()は自動的に実行されますか?
はい。正確な場所とタイミングは、AWT実装の内部に依存します。
目的は何ですか
It is as described in the javadoc. It is very low level stuff that is part of the "glue" that connects the AWT world to the native windowing world. (I'm being deliberately high-level and vague. If you want the nitty-gritty details, download and read the OpenJDK source code.)
and what happens when I override it
You'd probably break AWT :-)
and furthermore, why would I ever want to override this method?
I can't think of a good reason to do this ... unless you were trying to port AWT to a different operating system or a different native windowing system.
基になるネイティブウィジェットが破棄されている場合、メソッドaddNotify() / removeNotify()
はAWTが提供する唯一のフックであり、OpenGLコンテキストを正しく破棄して再作成できます。
addNotify()
低レベルのコンポーネントがオペレーティングシステムの基盤となるピアと対話するために使用するため、画面上のきれいな画像だけでなく、実際に何かが発生します。
この方法の使用は避けたほうがよいでしょう。
Component#addNotify()はjava.awt.Component
クラスのメソッドです。APIに記載されているこのメソッドの目的:
このコンポーネントをネイティブ画面リソースに接続することにより、このコンポーネントを表示可能にします。このメソッドはツールキットによって内部的に呼び出されるため、プログラムから直接呼び出すことはできません。