【发布时间】:2021-06-25 03:51:05
【问题描述】:
我正在编写一个代码,其中一个类用于绘制一条线,另一个类用于显示该线。该课程的重点是让我轻松编写多行代码并使我的代码更有条理。但是由于某种原因,每当我运行它时都会收到 StackOverflow 错误。我不确定为什么会这样。它还给了我一个 RunTimeException 和许多不同的错误消息,例如“应用程序启动方法中的异常”。我不确定这些应该是什么意思。
这是它给我的错误信息:
Exception in Application start method
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:873)
Caused by: java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$1(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.StackOverflowError
at Line.<init>(Main.java:133)
at Line.<init>(Main.java:133)
at Line.<init>(Main.java:133) //this just repeats a bunch of times
Exception running application Main
这是代码:
import javafx.scene.shape.Ellipse;
import javafx.scene.Node;
import javafx.scene.paint.Paint;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.shape.Ellipse;
import javafx.scene.shape.Rectangle;
class Line{
public Line line;
public Line(int x1, int y1, int x2, int y2){
Line line = new Line(x1, y1, x2, y2);
}
public void setFill(Paint p) {
line.setFill(p);
}
}
public class Main extends Application {
private Pane root;
@Override
public void start(Stage primaryStage) {
root = new Pane();
Line line1 = new Line(250,250,450,450);
root.getChildren().addAll((Collection<? extends Node>) line1);
line1.setFill(Color.BLACK);
Scene scene = new Scene(root, 500, 500);
primaryStage.setTitle("Empty");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}
【问题讨论】:
-
你能发布错误的全文吗?所有的线。这将帮助我们了解正在发生的事情。
-
你的代码中哪一行是 133?
标签: java javafx runtime javafx-8 stack-overflow