使用java swing绘制多边形时出现异常
嘿,我正在编写一个简单的java swing程序。但是当我使用从for循环中绘制的多边形绘制帧时,会发生异常 for循环:使用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++)
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。