我想从另一个类重新运行javafx应用程序。但error抛出“exception in thread”main“java.lang.illegalstateexception:应用程序启动不能被多次调用”。如何解决这个问题。
在我的代码中,我做控制台部分和外汇部分。我在一个类中做控制台部分,在另一个类中做fx部分。所以我只想将fx部分调用到我的控制台类(switch case)。意思是我只想在我需要的时候打电话给fx part。它可以是好几次。当我从菜单中选择fx选项时,我应该在不同的类中调用fx部分。
只是我想从我的菜单上调用外汇应用程序很多次。但当我这么做的时候,它抛出了一个异常。如何避免和怎样做
import javafx.application.Application;
import java.util.Scanner;
public class Test2{
static Scanner sc = new Scanner(System.in);
public static void main(String[] args){
System.out.print("ENTER THE CHOICE [OPTION NUMBER]: ");
String option = sc.nextLine();
switch (option){
case ("1"):
test();
break;
case("2"):
Application.launch(Application1.class,args);// I WANT TO RE RUN THIS SEVERAL TIMES
break ;
default:
System.out.println("invalid option. please re enter");
}
}
private static void test() {
}
}
import javafx.application.Application;
import javafx.stage.Stage;
public class Application1 extends Application{
@Override
public void start(Stage primaryStage){
//SOMETHING FX
}
}
1条答案
按热度按时间2w3kk1z51#
正如注解中所建议的,不要使用
Application
班级。只需将ui设置为常规java类:然后“手动”启动javafx平台,并根据需要显示一个窗口。您只需要在这里稍加注意,以确保在fx应用程序线程上执行ui任务。
您可能希望等到窗口关闭后再提示用户。我用一个
CountDownLatch
为了这个。如果您希望提示立即再次出现(这样用户可以同时打开多个窗口),只需省略该逻辑即可。