首页 > 解决方案 > Java Swing 会限制它绘制的项目数吗?

问题描述

我正在用 Java 编写一个递归方法,它基本上创建了一个圆形树。它在顶部和中心绘制一个圆圈,然后再次调用该方法并在 y 轴上创建一个低于新圆圈左侧和右侧一半的圆圈。我成功了,但只绘制了一定数量的对象这是它的样子

public void test(Graphics g, int y, int num, double instance) {
        if(num<50) {

            int r = 20;

            for(int i=1;i<=instance;i++) {

                if(i%2==1) {
                    g.fillOval(getWidth() * i / num, y, r, r);
                }
            }
            if(instance==1){
                instance= 2* instance;
            }
            test(g, y + 20, num * 2, Math.pow(instance,2.0));
        }

一切正常,直到我尝试将“if(num<50)”中的数字增加到恰好“if(num<65)”。当我更改 JFrame 出现但现在它是空的并且似乎程序被冻结时。我想增加它,以便我可以用圆形树填充 Jframe。为什么这样做?期待你的回复!谢谢!

标签: javaswingpaintcomponent

解决方案


我发现了这个问题。当我只需要使用 *2 并且修复了整个程序时,我不知道为什么我选择使用数学能力。


推荐阅读