使用java swing绘制多边形时出现异常

使用java swing绘制多边形时出现异常,swing,Swing,嘿,我正在编写一个简单的java swing程序。但是当我使用从for循环中绘制的多边形绘制帧时,会发生异常 for循环: for (int i=0;i<k;i++) { x= 100; y= 100; for(int j=0;j<k;j++) { if (cell[i][j]==0) break; if(i % 2 !=0) { p = new Polygon(); for (int h = 0; h < 6; i++)

嘿,我正在编写一个简单的java swing程序。但是当我使用从for循环中绘制的多边形绘制帧时,会发生异常

for循环:

for (int i=0;i<k;i++)
  { x= 100; y= 100;
  for(int j=0;j<k;j++)
  { if (cell[i][j]==0) break;
   if(i % 2 !=0)
    { p = new Polygon();
     for (int h = 0; h < 6; i++)
            p.addPoint((int) (x + 50 * Math.cos(h * 2 * Math.PI / 6)),(int) (y + 50 * Math.sin(h * 2 * Math.PI / 6)));

         g.drawPolygon(p);
    }    
   x+=75;
  }
  y+=45;
  }

Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:2834)
    at java.awt.Polygon.addPoint(Polygon.java:279)
    at freqnew.paintComponent(freqnew.java:44)
    at javax.swing.JComponent.paint(JComponent.java:1027)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paint(JComponent.java:1036)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paint(JComponent.java:1036)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:564)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paintToOffscreen(JComponent.java:5129)
    at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:277)
    at javax.swing.RepaintManager.paint(RepaintManager.java:1213)
    at javax.swing.JComponent.paint(JComponent.java:1013)
    at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)

    at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
    at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
    at java.awt.Container.paint(Container.java:1762)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:810)

    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)

    at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

for(int i=0;i您的代码不完整且混乱。您确定没有不可能发生的循环终止条件吗?(即无限循环)。您正在绘制多少个多边形

您可以输入一些日志来验证代码是否符合预期


您可以提前终止循环,并使用操作系统设施检查内存使用情况,以查看是否发生泄漏(即,包损坏)。

抱歉,这不是我的代码。它被扰乱了。它是这样的:for(int i=0;iComments格式不好,我要做的是编辑问题,在插入横线和“edit”一词后在末尾发布代码-然后读者可以了解发生了什么。在这种情况下,您只需更正问题,并在问题末尾添加注释或注释,如“edit:scrambled code corrected”。除非问题代码中有输入错误,否则这看起来像是一个简单的索引迭代错误。请注意,
多边形
-构建循环表示
for(int h=0;h<6;i++)
。您正在构建无限顶点
多边形
s。