讓我的代碼工作時遇到了一些麻煩。在我的代碼中,嵌套的等腰三角形假設是這樣繪製的:
我不確定我的代碼是否可以工作,因爲一旦我運行它,三角形就不會繪製。我給出的這個錯誤線程嵌套右等腰三角形Java
例外 「AWT-EventQueue的 - 0」 java.lang.StackOverflowError的
,我不知道如何解決它。幫幫我?
import java.awt.*;
import javax.swing.*;
public class Ornament extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g); // Call JPanel's paintComponent method
// to paint the background
drawTriangles(g, 100, 80, 64);
}
/**
* Draws an ornament made of triangles in Graphics g with the base midpoint
* at (x, y) and base half-length r
*/
public void drawTriangles(Graphics g, int x, int y, int r)
{
g.drawLine(x + r, y, x - r, y);
g.drawLine(x + r, y, x, y - r);
g.drawLine(x - r, y, x, y - r);
if (r == 4)
{
drawTriangles(g, x-r , y, r);
drawTriangles(g, x-r , y, r);
}
else {
drawTriangles(g, 36+r , y, r);
r --;
}
}
public static void main(String[] args)
{
JFrame w = new JFrame("Triangles");
w.setBounds(300, 300, 200, 120);
w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Ornament panel = new Ornament();
panel.setBackground(Color.WHITE);
Container c = w.getContentPane();
c.add(panel);
w.setResizable(false);
w.setVisible(true);
}
}
您的'drawTriangles'沒有基本大小寫。 – BitNinja 2014-10-19 23:01:51