gpt4 book ai didi

java - JavaFX 应用程序的子类化

转载 作者:行者123 更新时间:2023-12-02 05:01:52 24 4
gpt4 key购买 nike

这个问题是我发布的问题的后续问题 How do you call a subclass method from a superclass in Java? 。好吧,我得到了答案,但我的 SuperClass 是一个扩展应用程序的 JavaFX 应用程序,每当我尝试使用抽象类作为我的应用程序类时,我都会收到以下错误:java.lang.reflect。构造函数中的 InvocationTargetException。即使应用程序类不是抽象的,如果我尝试调用 new SubClass().create("title"); ,也会收到该错误。我想要实现的是按下回车键时调用子类中的方法 exec(String command) 。这是我当前的父类(super class)代码:

public abstract class Console extends Application {
private String title;
private static Text output = new Text();


public void create(String title) {
this.title = title;
launch();
}

public void start(Stage stage) {
stage.setOnCloseRequest((WindowEvent event) -> {
System.exit(0);
});
stage.setTitle(title);
stage.setResizable(false);
Group root = new Group();
Scene scene = new Scene(root, 800, 400);
stage.setScene(scene);
ScrollPane scroll = new ScrollPane();
scroll.setContent(output);
scroll.setMaxWidth(800);
scroll.setMaxHeight(360);
TextField input = new TextField();
input.setLayoutX(0);
input.setLayoutY(380);
input.setPrefWidth(800);
scene.setOnKeyPressed((KeyEvent event) -> {
if(event.getCode() == KeyCode.ENTER) {
exec(input.getText());
input.clear();
}
});
root.getChildren().add(scroll);
root.getChildren().add(input);
stage.show();
}
public static void appendOutput(String value) {
Platform.runLater(() -> {
output.setText(output.getText() + "\n" + value);
});
}
protected abstract void exec(String command);
}

最佳答案

不要创建新的 SubClass 实例,而是尝试调用静态方法 SubClass.launch(args) JavaFX 将自行创建新的 SubClass 实例。

关于java - JavaFX 应用程序的子类化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28204292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com