私はJava Swingをいじっていますが、JPanelとJComponentに関しては本当に混乱しています。CoreJava Vol 1 (cay horstmann) によると:
JComponent を拡張する代わりに、JPanel クラスを拡張することを好むプログラマーもいます。JPanel は、他のコンポーネントを格納できるコンテナとして意図されていますが、その上にペイントすることもできます。1つだけ違いがあります。パネルは不透明です。つまり、その境界内のすべてのピクセルをペイントする必要があります。これを実現する最も簡単な方法は、各パネル サブクラスの paintComponent メソッドで super.paintComponent を呼び出して、背景色でパネルをペイントすることです。
class NotHelloWorldPanel extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
. . . // code for drawing will go here
}
}
私は不透明なものを知っています。「パネルは不透明です..その境界内のすべてのピクセルをペイントする責任があります」とはどういう意味ですか? 私がそれを正しく読んだ場合、パネルはその境界内に独自の領域を描画すると言います.. JComponentもそうしませんか?
要するに、JPanel と JComponent の違いがわかりませんでした。私が本当にそれを見ることができる簡単な例はありますか?
どんな助けでも大歓迎です