2016-04-06 11 views
0

Ich startete das Hauptfenster (Klasse Main) und das modale Fenster (Klasse Login) mit Login und Passwort. Während aktiv modalen Fenster, Hauptstufe =Wie man Effekt in javafx zurücksetzt?

Wenn Benutzer gültige modale Fenster ist geschlossen. Wie setzt man den Effekt in der Hauptstufe zurück

root.setEffect(new GaussianBlur());? 

Vielen Dank! Hauptklasse:

public class Hauptanwendung {

Login loginWindow = new Login(); 

public static Stage windowMain; 

@Override 
public void start(Stage primaryStage) throws Exception { 
    Parent root = FXMLLoader.load(getClass().getResource("/views/main.fxml")); 
    Scene scene = new Scene(root); 
    scene.getStylesheets().add(this.getClass().getResource("/style/main.css").toExternalForm()); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 
    windowMain = primaryStage; 
    root.setEffect(new GaussianBlur()); 
    loginWindow.display(); 
} 

public static void main(String[] args) { 
    launch(args); 
} 

}

Login-Klasse erweitert:

public class Login {

public void display() throws IOException { 
    Stage window = new Stage(); 
    window.initModality(Modality.APPLICATION_MODAL); 
    window.initStyle(StageStyle.UNDECORATED); 
    auth.setTranslateY(40); 
    auth.setTranslateX(100); 
    auth.getStyleClass().add("auth"); 
    TextField username = new TextField(); 
    username.setTranslateY(70); 
    username.setTranslateX(75); 
    PasswordField password = new PasswordField(); 
    password.setTranslateY(100); 
    password.setTranslateX(75); 
    Button loginBtn = new Button(); 
    loginBtn.getStyleClass().add("loginBtn"); 
    loginBtn.setStyle("-fx-cursor: hand"); 
    loginBtn.setTranslateX(115); 
    loginBtn.setTranslateY(155); 

    loginBtn.setOnAction(new EventHandler<ActionEvent>() { 
     @Override 
     public void handle(ActionEvent event) { 
      if (username.getText().equals("admin") && password.getText().equals("admin")) { 
       window.close(); 
      } else { 
       System.out.println("Error"); 
      } 
     } 
    }); 

    Pane layout = new Pane(); 
    layout.getChildren().addAll(username, password, loginBtn); 
    Scene scene = new Scene(layout); 
    layout.getStylesheets().add(this.getClass().getResource("/style/login.css").toExternalForm()); 

    username.setFocusTraversable(false); 
    password.setFocusTraversable(false); 

    window.setScene(scene); 
    window.setAlwaysOnTop(true); 
    window.showAndWait(); 
} 

}

Antwort

0

Die default value for effect is null, so

root.setEffect(null); 

sollte funktionieren. Da Sie im Login-Fenster showAndWait() verwenden, brauchen Sie nur

+0

Vielen Dank. Aber wie kann ich Szenen aus der Hauptklasse bekommen? –

+0

Bitte geben Sie keinen Code in Kommentare ein, bearbeiten Sie stattdessen die Frage und fügen Sie der Frage formatierten Code hinzu. – jewelsea

+0

James_D, Vielen Dank !! –

Verwandte Themen