绘制圆并将其设置为在画布上可见

时间:2019-05-28 23:55:32

标签: java jframe awt

我有一些编写jFrame和canvas的代码。它们是可见的。但是我不知道如何在画布上设置一个可见的圆圈

    package unitcirclevisulaization;


    import java.awt.Canvas;
    import java.awt.Graphics;
    import javax.swing.JFrame;

    public class UnitCircleVisulaization extends Canvas {

        public static void main(String[] args) {
            JFrame frame = new JFrame("Unit Circle");
            Canvas canvas = new Canvas();
            canvas.setSize(800,800);
            frame.add(canvas);
            frame.pack();
            frame.setVisible(true);
        }

        public void paint(Graphics g)
        {
            g.fillOval(400, 400, 400, 400);
        }

    }

我只希望在画布上出现一个圆圈,并能够设置圆圈的颜色

1 个答案:

答案 0 :(得分:0)

您的绘制方法位于UnitCircleVisulaization类中,该类永远不会实例化,因此永远不会调用该绘制方法。

要解决此问题,只需替换行

Canvas canvas = new Canvas();

使用

Canvas canvas = new UnitCircleVisulaization();

之所以起作用,是因为UnitCircleVisulaization扩展了包含绘制方法的Canvas。当框架可见时,就会自动调用paint方法。