Ich versuche, meine allererste Anwendung in JavaFX zu erstellen, und ich habe ein Problem mit Button, das eine Methode aufruft (zum Beispiel um ein anderes Fenster zu öffnen) - ich muss es immer zweimal klicken um eine Aktion auszulösen.JavaFX Knopf reagierend auf zweiten Klick nicht zuerst
Hier ist mein Code aus dem Controller:
import javafx.fxml.FXML;
import javafx.scene.control.Button;
public class ControllerSignIn {
@FXML
private Button forgot;
@FXML
private Button back;
@FXML
private Button signin;
public void forgetPasswordClicked() {
forgot.setOnAction(e -> ForgotPassword.setUpWindow()); //works on 2nd click
}
public void backClicked() {
back.setOnAction(e -> ForgotPassword.closeWindow()); //works on 2nd click
}
public void signInClicked() {
System.out.println("Sign In CLICKED"); //works on first click
}
}
sind hier Meine Methoden implementiert:
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Modality;
import javafx.stage.Stage;
import java.io.IOException;
public class ForgotPassword {
static Stage window;
static Scene scene;
static Parent root;
private static void loadFXML() {
try {
root = FXMLLoader.load(ForgotPassword.class.getResource("ForgotPassword.fxml"));
} catch (IOException e) {
e.printStackTrace();
}
}
public static void setUpWindow() {
loadFXML();
scene = new Scene(root);
scene.getStylesheets().add("signin/SignIn.css");
window = new Stage();
window.initModality(Modality.APPLICATION_MODAL);
window.setTitle("Forgot Password?");
window.setScene(scene);
window.showAndWait();
}
public static void closeWindow() {
window.close();
}
}
Wie haben Sie den Anruf für diese Methoden konfiguriert? Z.B. Haben Sie in Ihrer 'FXML' definiert, dass' 'vergessen' '' forgetPasswordClicked() '' aufruft? – Jaims
Können Sie Ihre 'ForgotPassword.fxml'-Datei posten oder überprüfen, ob sie richtig konfiguriert ist? –