JavaFX - запуск приложения с параметром объекта из другого класса - PullRequest
0 голосов
/ 26 февраля 2019

Я нахожусь в процессе использования JavaFX для создания GUI, который взаимодействует с классом ServerInterface.Класс JavaFX называется ServerWindow и будет запущен другим классом под названием Launcher, который я могу редактировать, но я должен его использовать.Я пытаюсь прикрепить объект ServerInterface к ServerWindow, но, как бы я ни пытался, я получаю ошибки.
Сначала я попытался передать его как параметр, но JavaFX не нравится параметры, отличные от аргументов String, передаваемых через него, когдаApplication.launch (...) вызывается.
Далее я попробовал это:

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)

    }

}

1 Ответ

0 голосов
/ 26 февраля 2019

Вы можете передать имя класса:

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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...