Я пытаюсь нарисовать строку на холсте. Ошибка возникает, когда я создаю экземпляр класса, который расширяет Canvas
, почему я его получаю?java.lang.StackOverflowError в теме main
стек Ошибка
at sun.awt.Win32GraphicsConfig.getBounds(Native Method)
at sun.awt.Win32GraphicsConfig.getBounds(Win32GraphicsConfig.java:222)
at java.awt.Window.init(Window.java:505)
at java.awt.Window.<init>(Window.java:537)
at java.awt.Frame.<init>(Frame.java:420)
at javax.swing.JFrame.<init>(JFrame.java:233)
at canvas.Canvas.<init>(Canvas.java:20)
at canvas.Canvas$DrawCanvas.<init>(Canvas.java:35)
at canvas.Canvas$DrawCanvas.<init>(Canvas.java:35)
at canvas.Canvas.<init>(Canvas.java:17)
at canvas.Canvas$DrawCanvas.<init>(Canvas.java:35)
at canvas.Canvas$DrawCanvas.<init>(Canvas.java:35)
at canvas.Canvas.<init>(Canvas.java:17)
at canvas.Canvas$DrawCanvas.<init>(Canvas.java:35)
at canvas.Canvas$DrawCanvas.<init>(Canvas.java:35)
at canvas.Canvas.<init>(Canvas.java:17)`
Вот мой код:
public class Canvas extends JFrame{
DrawCanvas cc = new DrawCanvas();
public Canvas(){
super("Canvas");
setVisible(true);
setSize(100, 100);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(cc);
}
public static void main(String[] args) {
Canvas c = new Canvas();
}
private class DrawCanvas extends Canvas{
@Override
public void paint(Graphics g){
g.drawString("String", 10, 10);
}
}
}
Почему вы скрываете сам вопрос? как мы можем ответить, если вы полностью не предоставляете stacktrace? – Azodious
Напиши здесь код – AMB
Трассировка стека продолжается на холсте. Canvas $ DrawCanvas. (Canvas.java:35) на холсте.Canvas $ DrawCanvas. (Canvas.java:35) на холсте.Канас. (Canvas.java:17) ' –
Filippo