1. ホーム
  2. java

[解決済み] Javaで矩形を塗りつぶす

2022-02-03 20:08:06

質問事項

graphics2Dを使用して矩形を塗りつぶす方法について激しくググってみました。

現在、ドイツ国旗を作りたいので、3つの長方形を作りたいと思っています。でも、今は1つの矩形を塗りつぶして、どうなるか見てみたいです。

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.geom.Line2D;
import javax.swing.JComponent;

public class germanflag
{
    public void paintComponent(Graphics g)
    {
        Graphics2D g2 = (Graphics2D) g;

        // Construct flag
        Rectangle flag = new Rectangle(0, 0, 120, 60); 

        Graphics2D g2d = flag;
        g2d.setColor(Color.RED);
        g2d.fillRect(0,0,120,60);
        // draw the rectangle
        g2.draw(flag); 

    }
}

明らかにエラーが出ています。ただ、それをどう修正すればいいのかがわかりません。矩形は塗りつぶしを行う際に作成すべきなのか、それともこのコードのようにあらかじめ初期化しておくべきなのでしょうか?

解決方法を教えてください。

問題なのは、このタイプのインスタンス/オブジェクトをキャスト/アサインしようとしていることです。 RectangleGrapichs2D .

//Graphics2D g2d = flag; //not required
g2d.setColor(Color.RED); //use g2 instead
g2d.fillRect(0,0,120,60);//use g2 instead

P.S. クラス germanflag は、どのSwingコンポーネントも拡張しません。あなたが探しているのは、もしかしたら JComponent または JPanel .