我可以調用'Application.launch(參數)以外的方法調用 'Application.launch(參數)'; '從主要以外的方法?如果可以的話,請記住下面的情況來舉一個例子嗎?
背景
我建立學習/教學,指揮/文本應用程序,講授陣列用戶。在主類的末尾,在主要應用程序內容運行後,我調用'ViewSiteOrExit.viewSitePromptPuSVM(); ',這會讓用戶反對:打開陣列上的Oracle頁面或退出遊戲。
如果用戶希望查看Oracle頁面,我調用'OpenSite。(?)? ',它將在FX VBox中打開頁面。如果沒有,退出。
這是我第一次使用FX,而且我很累,所以對我的代碼的任何觀察和建議都會有幫助,因爲我可能會錯過一些東西。
但我的主要問題是,我應該怎麼稱呼'OpenSite。??????????(); ',該方法包含'Application.launch(args);,如果不是從我的main?
如果它必須從main調用,那麼只有當應用程序的主要部分已經運行並且僅當用戶輸入'y'後,我該如何做?
下面是提示用戶查看站點或退出遊戲的.java,以及打開頁面的.jave。
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;
public class OpenSite extends Application
{
VBox vBoxOF = new VBox();
public static void main(String[] args)
{
Application.launch(args);
}
@Override
public void start(Stage primaryStage)
{
vBoxOF.setId("root");
WebView webViewBrowserOL = new WebView();
WebEngine webEngineOL = webViewBrowserOL.getEngine();
String urlSL = "http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html";
webEngineOL.load(urlSL);
vBoxOF.setPadding(new Insets(30, 50, 50, 50));
vBoxOF.setSpacing(10);
vBoxOF.setAlignment(Pos.CENTER);
vBoxOF.getChildren().addAll(webViewBrowserOL);
Scene sceneOL = new Scene(vBoxOF);
primaryStage.setScene(sceneOL);
primaryStage.show();
}
}
二等
package mrArray;
public class ViewSiteOrExit
{
/*
* declare fields,
*/
private static int statePrSIF;
private static String enterYOrNPrSSOF;
/*
* declare method,
* initialize field,
* while, test(field) is passing execute,
* switch, evaluates cases with value(field),
* matching, execute statements,
* 0, first case, prompt, y drop to if, reset value, use app again,
* n drop to else, increment field, 1, second case,
* invoke method to close app, reset field value to prevent double field invocation,
* return flow to caller to prevent use of closing Scanner,
*/
public static void viewSitePromptPuSVM()
{
statePrSIF = 0;
while (statePrSIF < 2)
{
switch (statePrSIF)
{
case 0:
System.out.println();
System.out.println("[:-)] One more question?");
System.out.println("Would you like to see what Oracle has to say about me?");
System.out.println("Enter ' y ' for yes.");
System.out.println("Enter ' n ' for no.");
break;
case 1:
goodByePuSVM();
statePrSIF = 0;
return;
}
enterYOrNPrSSOF = MrArray.scannerOF.next();
if(enterYOrNPrSSOF.equalsIgnoreCase("y"))
{
statePrSIF = 0;
System.out.println("[:-)] Well bud, it's been fun.");
System.out.println("Here is that Orcale thing.");
System.out.println("See ya later!");
OpenSite.??????????();
}
else if(enterYOrNPrSSOF.equalsIgnoreCase("n"))
{
statePrSIF++;
}
}
}
/*
* declare method,
* invoke methods, display output,
* close Scanner, terminate,
*/
public static void goodByePuSVM()
{
System.out.println("[:-)] Well bud, it's been fun.");
System.out.println("See ya later!");
MrArray.scannerOF.close();
}
}
如果你只是想給學生顯示一個網頁,在默認瀏覽器中使用java.awt.Desktop類打開該網頁可能會更容易,而不是自己編寫一個GUI。 https://docs.oracle.com/javase/8/docs/api/java/awt/Desktop.html – Puce 2015-01-21 12:45:20