Как установить приложение Java для закрытия, когда окно браузера JavaFX закрыто?установить приложение java для закрытия, когда окно браузера JavaFX закрыто?
У меня есть консольное приложение, в конце основного содержимого пользователя спрашивают, хотят ли они просматривать веб-страницу. Если да, откройте веб-страницу. Если не выйти из приложения.
Как я понимаю, приложение javaFX закрывается, когда окно вычеркнуто. Моя проблема заключается в том, что часть моего приложения, которое не является FX, и команда/текст не исчезает, когда окно закрывается. Как я могу достичь полного завершения приложения, когда окно FX закрывается.
Я буду включать два класса. Один запрашивает у пользователя просмотр страницы и ввода n, а затем завершение. Другой класс открывает страницу.
package mrArray;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
/*
* declare class, subclass of Application.
* declare, instantiate, initialize vBoxOF,
*/
public class OpenSite extends Application
{
\t VBox vBoxOF = new VBox();
\t /*
\t * declare method.
\t * invoke OpenSite.launch(OpenSite.class);,
\t * launch a stand-alone application.
\t */
\t public static void invokeLaunch()
\t {
\t \t OpenSite.launch(OpenSite.class);
\t }
\t
\t /*
\t * declare start(Stage primaryStage),
\t * main entry point for all JavaFX applications,
\t * declare primaryStageOP,
\t * the top level JavaFX container.
\t * invoke setId("root"),
\t * assign identifier.
\t * declare, instantiate, initialize webViewBrowserOL,
\t * as node that manages a webEngineOL & displays its content.
\t *
\t * managing one Web page
\t */
\t public void start(Stage primaryStage)
\t {
\t \t vBoxOF.setId("root");
\t \t WebView webViewBrowserOL = new WebView();
\t \t WebEngine webEngineOL = webViewBrowserOL.getEngine();
\t \t String urlSL = "http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html";
\t \t webEngineOL.load(urlSL);
\t \t vBoxOF.setPadding(new Insets(30, 50, 50, 50));
\t \t vBoxOF.setSpacing(10);
\t \t vBoxOF.setAlignment(Pos.CENTER);
\t \t vBoxOF.getChildren().addAll(webViewBrowserOL);
\t \t Scene sceneOL = new Scene(vBoxOF);
\t \t primaryStage.setScene(sceneOL);
\t \t primaryStage.show();
\t \t
\t \t //ViewSiteOrExit.exitApp();
\t }
}
package mrArray;
public class ViewSiteOrExit
{
\t /*
\t * declare fields,
\t */
\t private static int statePrSIF;
\t private static String enterYOrNPrSSOF;
\t
\t /*
\t * declare method,
\t * initialize field,
\t * while, test(field) is passing execute,
\t * switch, evaluates cases with value(field),
\t * matching, execute statements,
\t * 0, first case, prompt, y drop to if, reset value, use app again,
\t * n drop to else, increment field, 1, second case,
\t * invoke method to close app, reset field value to prevent double field invocation,
\t * return flow to caller to prevent use of closing Scanner,
\t */
\t public static void viewSitePromptPuSVM()
\t {
\t \t statePrSIF = 0;
\t \t while (statePrSIF < 2)
\t \t {
\t \t \t switch (statePrSIF)
\t \t \t {
\t \t \t \t case 0:
\t \t \t \t \t System.out.println();
\t \t \t \t \t System.out.println("[:-)] One more question?");
\t \t \t \t \t System.out.println("Would you like to see what Oracle has to say about me?");
\t \t \t \t \t System.out.println("Enter ' y ' for yes.");
\t \t \t \t \t System.out.println("Enter ' n ' for no.");
\t \t \t \t \t break;
\t \t \t case 1:
\t \t \t \t goodByePuSVM();
\t \t \t \t statePrSIF = 0;
\t \t \t \t return;
\t \t \t }
\t \t \t
\t \t \t enterYOrNPrSSOF = MrArray.scannerOF.next();
\t \t
\t \t \t if(enterYOrNPrSSOF.equalsIgnoreCase("y"))
\t \t \t {
\t \t \t \t statePrSIF = 0;
\t \t \t \t System.out.println("[:-)] Well bud, it's been fun.");
\t \t \t \t System.out.println("Here is that Orcale thing.");
\t \t \t \t System.out.println("See ya later!");
\t \t \t \t OpenSite.invokeLaunch();
\t \t \t }
\t \t \t else if(enterYOrNPrSSOF.equalsIgnoreCase("n"))
\t \t \t {
\t \t \t \t statePrSIF++;
\t \t \t } \t
\t \t }
\t }
\t
\t /*
\t * declare method,
\t * invoke methods, display output,
\t * close Scanner, terminate,
\t */
\t public static void goodByePuSVM()
\t {
\t \t System.out.println("[:-)] Well bud, it's been fun.");
\t \t System.out.println("See ya later!");
\t \t
\t \t MrArray.scannerOF.close();
\t \t exitApp();
\t }
\t
\t public static void exitApp()
\t {
\t \t System.exit(0);
\t }
}
you'er жизнь заставки. спасибо, время спать. – ReedWilliams19842004
@ ReedWilliams19842004 - вы ничего не изучаете, если все остальные вы работаете для вас. Ваши вопросы чрезвычайно низки и в каждом случае дублируются десятки других начинающих вопросов, которые уже задавались бесчисленными временами. Проведите некоторое исследование и задайте конкретные вопросы, которые не задаются и ответы снова и снова. ** Вероятно, у вас будет вопрос с вопросом, если вы продолжаете идти, как будто вы идете. ** –