0

ネストされたJPanelを使用したレイアウトで、描画された楕円を追加したいと思います。

このために私は以下を使用します:

@Override
public void paintComponent(Graphics g)
{
    super.paintComponent(g);

    g.setColor(Color.GRAY);
    g.fillOval(20, 20, 20, 20);
}

今、私のパネルの1つで、この楕円形を追加したいのですが、これを追加できないようです。

JPanel myPanel = new JPanel();
myPanel.setLayout(new GridLayout(0, 2));
//myPanel.add(...); here i wish to add the drawn oval

どんな入力でも大歓迎です!

4

2 に答える 2

4

これを行う方法は、必要な描画を行うサブクラスをJComponent作成し、それをレイアウトに追加することです。

class OvalComponent extends JComponent {
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.setColor(Color.GRAY);
        g.fillOval(20, 20, 20, 20);
    }
}

GUI構築コードでは、次のようにすることができます。

JPanel panel = new JPanel(new GridLayout(0, 2));
panel.add(new OvalComponent());
于 2011-01-12T18:18:52.223 に答える
2

他のGUI要素にはmypanel.add(...)を使用します。描画する楕円はjava2dオブジェクトになり、パネルにペイントする必要があります。そのためには、パネルのpaint()メソッドを上記で投稿したコードでオーバーライドする必要があります。

于 2011-01-12T18:20:13.070 に答える