私の絵画の各行が前の行のペイントに依存するプログラムを作成しています。新しいペイントでは指定された座標で前の行のRGB値が必要なので、JPanelをBufferedImageに変換してgetRGB()を使用してColorを取得します。既存の画像に描画する
新しい行のイメージを作成するときに、最初のイメージの転送に問題があります。
次のコードでは、行は、インスタンス変数である
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if(line==1)
{
g.setColor(Color.WHITE);
g.fillRect(0,0,100,100);
g.setColor(Color.RED);
g.fillRect(25,25,20,20);
}
else if(line!=1)
{
g=img.getGraphics();
g.setColor(Color.BLUE);
g.fillRect(50,50,25,25);
}
}
をワーク・ないとIMGは線で最初行連結
Paint_Test ob=new Paint_Test();
frame.add(ob);
img=toBufferedImage(ob);
のBufferedImageのある
g=img.getGraphics();
私は元のbufferedimageのグラフィックスオブジェクトを取得しようとしており、その上に描画しています。代わりに、出力に入るのは空白の画面です(理想的な出力は2つの正方形、1つは赤、もう1つは青です)。
私はどこが間違っているのか、どのように修正できるのか教えてください。あなたの助けが大いに評価されるでしょう。
ありがとうございます!
適切な[mcve]をすぐに投稿するために、 'else if(line!= 1)'行を 'else'だけ書き換えることもできます。 – Frakcool