- - PR -
JPanelの上に同じサイズのJPanelを貼ると…
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-07-09 13:31
rancoさん、有難う御座います。
解決しました。 仰っていることが良く分かりました。 元々、JPnaelのIsOpaqueのデフォルトはtrueであるが、 オーバーライドしたpaintComponentの中で全領域を塗りつぶしていないため、 下にあるJPanelが表示されていた。 しかし、これは上のJPanelが透明な訳ではなく、 下のコンポーネントより小さいため、下のコンポーネントが透けて 見えていただけである。 サイズが同じJPanelを上に貼る場合は、下のコンポーネントは完全に隠れる ため、描画されない。 ということですね。 以下のコードを追加することで解決しました。
有難う御座いました。 nagiseさん、 毎度、有難う御座います。理解不足で失礼致しました。 ぴあちゃんさん、 わざわざコードまで書いて頂いて感謝します。理解に役立ちました。 付記: 以下の記述があったため混乱しましたが、IsOpaque()で調べれば明快なことでした。 失礼致しましたm(__)m > (JButton および JTree など) の表記は改善を要求すべきですね。 [quate] public void setOpaque(boolean isOpaque) true の場合、コンポーネントはその境界内のすべてのピクセルをペイントします。false の場合、コンポーネントはピクセルの一部または全部をペイントしないので、その下のピクセルが透けて表示されます。 JComponent に対するこのプロパティーのデフォルト値は、false です。ただし、もっとも標準的な JComponent のサブクラス (JButton および JTree など) に対するこのプロパティーのデフォルト値は、Look & Feel に依存します。 パラメータ: isOpaque - このコンポーネントが不透明な場合は true 関連項目: isOpaque() [/quate] |