> On Nov 7, 2023, at 2:57 PM, Philip Race <[email protected]> wrote:
>
> I don't have a definite answer to your question, and for sure AWT docs may be
> a bit lacking,
> but there's also a lot of them so an answer may be buried somewhere.
>
> Not sure if you are saying you are in fact running "arbitrary code" in
> removeNotify() but
> I don't think that would be a good idea. You can observe in there but I'm not
> sure
> you should "do" anything. Also per the docs you need to call the superclass
> method as the first line.
>
> There's this old bug report https://bugs.openjdk.org/browse/JDK-4074274 which
> might be useful to read.
>
> -phil.
>
Interesting, but In this case, it is JTextComponent that is “doing something”.
public void removeNotify() {
super.removeNotify();
if (getFocusedComponent() == this) {
AppContext.getAppContext().remove(FOCUSED_COMPONENT);
}
}
Is there similar advice not to “do something” in a focus event listener?
I’m not seeing an argument against using some “defensive programming” in
Container.remove.
It would be odd if some application depended upon removing a different
component.
Alan