0

一見非常に単純なタスクが手元にあります。グリッド (現在は 500x500) があり、データが入力されているときに視覚化したいので、これを簡単に行えるようにするクラスを Java で作成したいと考えています。私は次のようなことを考えています:

public class Screen {
  ...

  public void plot(x,y) {
    // change the color of pixel x,y to black
  }

  public void clear() {
    // fill the screen with white
  }
}

私は周りを見回して、awt で Canvas をすぐに見つけましたが、これまでに把握できたことから、このウィジェットでは、ペイント メソッドをオーバーライドすることによってのみ、キャンバスに描画することができます。これは、1 つのピクセルをプロットするたびにグリッド全体を描画する必要があるため、私の場合は最適とは言えません。

キャンバス全体ではなく、単一のピクセルだけを描画する方法はありますか? または、私がここで探しているものを達成するための他の方法はありますか?

外部ライブラリを使用する必要は避けたいと思います。

4

2 に答える 2

1

グリッド全体を表示するには、ペイント メソッドをオーバーライドする必要があります。

ただし、できることは、1 つのピクセルを反転するBufferedImageを作成し、その画像全体を paint メソッドでGraphics.drawImage()を使用してコンポーネントに描画することです。

于 2012-10-09T15:01:15.587 に答える
0

paint()残念ながら、paint() が呼び出されるたびに、グリッド全体をオーバーライドしてレンダリングする必要があります。これがグラフィカル コンポーネントの動作方法です。Windows システム/OS は、いつでもコンポーネントの再描画を要求する場合があります (たとえば、ウィンドウが再表示/サイズ変更/移動されたとき)。

于 2012-10-09T15:15:33.767 に答える