- - PR -
コンポーネントのshowメソッドについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-04-07 20:09
java1.5から
「show()」が推奨されておらず、 その代わりに「setVisible(true)」 を使ったほうがいいとなっていますが、 もしこのままshow()を使う場合はどういう事象が起こる可能性があるのでしょうか。 不具合の原因分析で調査中です。 宜しくお願いします。 | ||||
|
投稿日時: 2008-04-07 23:42
あんまりAWTは詳しくないですが、SunのJDK5のjava.awt.Componentのコードを見る限り、
setVisible(boolean)はshow()に委譲しているだけです。 Componentを継承したオブジェクトが、setVisible(boolean)を呼び出される事を前提として、 オーバーされている場合、show()の呼び出しと動作に違いがでます。 ちなみに、Javadocを見ると1.5ではなく1.1から非推奨となっています。 | ||||
|
投稿日時: 2008-04-08 09:58
こういった非推奨メソッドは互換のために残されていますが、
中身は新しいメソッドへの委譲となっていることが多くあります。 表向きのメソッドの形はそのままに、中身は入れ替わっているわけですね。 1.1から非推奨のようなので、1.0のソースを確認すると違いが分かるかもしれません。 | ||||
|
投稿日時: 2008-04-08 10:11
他の方が書かれていますが、肝心な所が抜けていると思ったので(詳しくないながら)ちょっと補足を
APIや、メソッドをいきなりあるバージョンから「使えなく」すると、互換性に問題が出てくるので、ある程度の準備期間をもうける意味で「非推奨」としている訳です。 つまり、次のバージョンでそのメソッドが残っているかは保証しないという事なので、そのままのソースを次のバージョンでコンパイルしてみたらエラーが出る可能性がある、という事です。 | ||||
|
投稿日時: 2008-04-08 16:28
返信ありがとうございます。
おかげさまで非常に参考になりました! みなさんから教えていただいたことを基に調査をしてみます。 |
1