私はJavaFXアプリケーションを設計しており、別のウィンドウのController内のウィンドウの1つのApplicationクラスを呼び出す必要があります。Javaの別のクラスのメソッドでクラスのすべてのメソッドを呼び出す方法
MainController.java:
public class MainController {
@FXML
public Button buttonLogin;
@FXML
public Button buttonNeuAnmelden;
@FXML
public void handleButtonLoginAction(ActionEvent event) {
((Node) (event.getSource())).getScene().getWindow().hide();
System.out.println("LoginButton geclickt!");
}
@FXML
public void handleButtonNeuAnmeldenAction(ActionEvent event) {
((Node) (event.getSource())).getScene().getWindow().hide();
System.out.println("NeuAnmeldenButton Geclickt!");
}
}
LoginApp.java:
public class LoginApp extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader = new FXMLLoader(
getClass().getResource("/design/Login.fxml"));
Parent root = loader.load();
primaryStage.setTitle("Benutzerverwaltung");
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
}
私は、具体的
handleButtonLoginAction()
方法で
main(String[] args)
と
start(Stage primaryStage)
クラスを意味し、
LoginApp
のすべてのメソッドを実行する必要が
あたかもクラス全体がそのままその時点で呼び出されたかのように見えます。
どうすればよいですか?
*をこれはどういう意味ですか?あなたは "クラスを呼び出す"ではなく、メソッドを呼び出します。また、 'main(...)'メソッドは、 'once(一度しか呼び出されない)'を呼び出す 'launch()'メソッドを呼び出します(http://docs.oracle.com/javase/8/javafx/api/javafx/application/Application .html#launch-java.lang.String ...-)をアプリケーションの存続期間中に使用します。 –
しかし、あなたはまだクラスが何らかの形で実行可能であることを暗示しています: "そのクラスは何をしていますか"。クラスは何もしません。クラスのメソッドは何かを行います。実際に何をしようとしていますか?たとえあなたがここで意味をなさない言語にしても、それは意味的には意味をなさない。 'Application'クラスはアプリケーション全体とそのライフサイクルを表します。任意のJVMに 'Application'インスタンスを1つだけ持たなければなりません。また、アプリケーションを起動するときに' start() 'メソッドが呼び出されます。アプリケーション内からアプリケーションを起動するのは実際には意味がありません。 –
だから私はそれが好きだと言った!私はあなたがクラスを呼び出すことができないことを知っているので。しかし、私はそのクラスがイベントハンドラのその時点で何をしているのか正確に必要としています... – Bahador