3

このペイントブラシプログラムを作成して、パネルコンテナをクリアすることにしました(リンクpanel2されたコードで)。使っPanelName.setForeground(null)てみたらうまくいきました。私が知りたいのは、このアプローチや、コンテナからグラフィックスオブジェクトを削除する他の方法の既知の欠点があるかどうかです。

4

2 に答える 2

5

をオーバーライドすると、を使用してpaintComponentクリアできます。しかし、全体として、私はあなたのアプローチを好みます。なぜなら、私の場合はサブクラスにするか、匿名で宣言する必要があるからです。GraphicsGraphics#clearRectJPanel

于 2012-08-28T11:57:23.040 に答える
3

@mreの答えの逆は、「このプロパティを尊重するのはルックアンドフィール次第です。無視することを選択する人もいます」というものです。前景色を無視するaはわかりませんがPanelUI、テストするときに注意する必要があります。

補遺:@kleopatraがコメントしているように、 APIはJComponent@setForeground()APIにリンクしておりComponent#getForeground()、次の点に注意しています。「このコンポーネントに前景色がない場合は、親の前景色が返されます。」

于 2012-08-28T13:49:28.387 に答える