0

JPanel にグラデーションを追加する方法に関する投稿がいくつかありますが、それらはすべて、JPanel を最初からハードコーディングしていると想定しています。NetBeans GUI ビルダーを使用して構築された JPanel にグラデーションを追加する方法を説明できる人はいますか? (私は Java の初心者です... Processing の経験が豊富なので、私が 9 歳であるかのように答えてもよければ...)。

グラデーションをかけたい「ホーム」というJPanelがあります。NetBeans では、[コードのカスタマイズ] メニュー オプションの下に、次のように表示されます。

Home.setBackground(新しい java.awt.Color(153, 204, 255));

ここには、このコードのバリエーションを含むいくつかの投稿があります。

@Override
public void paintComponent(Graphics g){
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D)g;
    int w = getWidth();
    int h = getHeight();

    GradientPaint gp = new GradientPaint(
            0, 0, Color.white,
            0, h, Color.black);

    g2d.setPaint(gp);
    g2d.fillRect(0, 0, w, h);
}

しかし、これをどこに置き、どのようにホーム パネルに接続すればよいのでしょうか? そして、g は何を指しますか?

御時間ありがとうございます。

4

2 に答える 2

2

独自のパネル クラスを作成し、JPanel を拡張する必要があります。カスタムコンポーネントを追加できるかどうかを知るために NetBeans GUI ビルダーを使用したことはありません。gメソッドへのパラメーターである Graphics オブジェクトを参照します。

public class GradientPanel extends JPanel {

    @Override
    public void paintComponent(Graphics g){
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D)g.create();
        int w = getWidth();
        int h = getHeight();

        GradientPaint gp = new GradientPaint(
                0, 0, Color.white,
                0, h, Color.black);

        g2d.setPaint(gp);
        g2d.fillRect(0, 0, w, h);

        g2d.dispose();
    }
}

次に、JPanel の代わりに GradientPanel を使用します。

絵を理解したい場合は、関連するチュートリアルを参照してください。ただし、そのコードをコピーして貼り付けるだけで使用できます。

http://docs.oracle.com/javase/tutorial/uiswing/painting/index.html

于 2013-10-27T02:24:54.043 に答える