gpt4 book ai didi

JavaFX - 使用来自不同类的对象参数启动应用程序

转载 作者:行者123 更新时间:2023-11-30 05:45:42 27 4
gpt4 key购买 nike

我正在使用 JavaFX 创建一个与 ServerInterface 类交互的 GUI。 JavaFX 类称为 ServerWindow,将由另一个称为 Launcher 的类启动,我可以编辑该类,但必须使用它。我正在尝试将 ServerInterface 对象附加到 ServerWindow,但无论我如何尝试,都会出现错误。
首先,我尝试将其作为参数传递,但 JavaFX 不喜欢在调用 Application.launch(...) 时传递除 String args 之外的参数。
接下来,我尝试了这个:

ServerWindow s = new ServerWindow();
s.addServer(new MockServer());
s.launch(s.getClass(), "");

这似乎调用了 ServerWindow 类两次,第二次是附加了服务器的一次。无论如何,有没有办法在向程序传递参数的同时启动程序?

编辑 - 添加示例:

class GUI extends Application{
private ServerInstance server;
public GUI(ServerInstance s){
this.server = s
}
public static void Start(){
System.out.println(this.server.getServerName());
}

}
class Main {
public static void main(String[] args){
DummyServer ds = new DummyServer(); //Implements ServerInterface
Application.launch(GUI.class, ds)

}

}

最佳答案

您可以传递类名:

Application.launch(GUI.class, DummyServer.class.getName());

然后在您的应用程序中,您可以创建该对象:

@Override
public void start(Stage stage)
throws ReflectiveOperationException {

String serverClassName = getParameters().getRaw().get(0);

Class<? extends ServerInstance> serverClass =
Class.forName(serverClassName).asSubclass(ServerInstance.class);

this.server = serverClass.getConstructor().newInstance();
}

关于JavaFX - 使用来自不同类的对象参数启动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54875960/

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