2015-03-06 3 views
0

Я хочу создать программу на Java с основным окном, которое может открыть больше подпрограмм в других окнах.Как запустить новый поток JavaFX (Application)?

Я создал простую программу JavaFX для главного окна, и она работает, как и следовало ожидать, так как:

public class MainThread extends Application { 
    @Override 
    public void start(Stage primaryStage) { 

     // code goes here... 

    } 
} 

... и я создал к другим классам Java точно так же.

Я попытался запустить их просто с new SubProgramThread(); - так как я бы создал новый экземпляр любого объекта, но это не сработало для меня - он не запускает метод start() в классах подпрограмм.

Это правильный способ создания экземпляра Application?

Спасибо.

+0

Вы действительно хотите запускать разные программы в разных окнах или просто хотите иметь разные окна? – fge

+0

@fge Это разные потоки одного и того же процесса в разных окнах - он все еще находится под одной и той же программой Java. –

+1

Ну, вы не можете этого сделать, поскольку для одной JVM может быть только один поток приложений JavaFX (насколько я знаю, по крайней мере); но это не мешает вам иметь несколько окон (у каждого должна быть своя «стадия», но это выполнимо) – fge

ответ

1

Я делаю это все время. У меня есть меню предметов. Когда пользователь нажимает кнопку элемента создать новое окно, вызвав начало() класс FX:

new TyAltSvr().start(new Stage()); 

Some people не любит вызов Start(), но это не вызвало у меня никаких проблем.

+0

Спасибо, но я думаю, что мне лучше нравится комментарий fge: создать новую «Stage», а не целое новое приложение JavaFX «Приложение». Было бы преимуществом создание нового экземпляра 'Application'? –

+1

@ jlam55555 Я создаю новый этап: начало (новая сцена))); Новый этап передается в start(). – edharned

+0

О, это имеет смысл. Благодарю. –

Смежные вопросы