java - 绘制圆圈并将其设置为在 Canvas 上可见

标签 java swing canvas jframe awt

我有一些制作 jFrame 和 Canvas 的代码。它们是可见的。但是我不知道如何在 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);
        }

    }

我只想在 Canvas 上出现一个圆圈,并且能够设置圆圈的颜色

最佳答案

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

要解决这个问题,只需更换行

Canvas canvas = new Canvas();

Canvas canvas = new UnitCircleVisulaization();

这是有效的,因为 UnitCircleVisulaization 扩展了包含 paint 方法的 Canvas。然后当框架可见时自动调用 paint 方法。

关于java - 绘制圆圈并将其设置为在 Canvas 上可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56351412/

相关文章:

java - 在 java 中遇到 NoClassDefFoundError

java.lang.ClassNotFoundException : org. springframework.boot.context.properties.bind.可绑定(bind)

java - 绘画程序不使用并行数组来正确存储大小和颜色

javascript - 为什么在 Canvas(JS) 中 toDataUrl() 在 drawImage() 之后不起作用?

canvas - 将网络摄像头流作为 WebGL 纹理进行操作?

java - Java 9 中的 --add-exports 和 --add-opens 有什么区别?

Java swing JTable 在使用 JScrollPane 时不显示滚动条

java - 如何将 JCheckbox 放在 JTable 上?

javascript - 如何在 HTML5 Canvas 中正确创建带边框的线

java - 如何在 Spring 3.0 应用程序中配置 Hibernate 统计信息?