0

Javafx Yeni Pencere Açma ve Açılan Pencereyi Kapatma

Merhaba arkadaşlar bu dersimizide javafx de proje oluştururken sıklıkla karşılaştığımız bir konudan bahsedeceğim. Bildiğiniz gibi önceki yazılarımızda kontroller arası veri nasıl aktarılır bundan bahsetmiştik. Şimdi ise yeni pencereyi nasıl açacağız ve açtığımız pencereyi tekrar programsal olarak nasıl kapatacağız bundan bahsedeceğim. Hem program kodları hemde video paylaşıyorum. Yardımcı olur inşallah herkese kolay gelsin

 

package sample;

// Controller.java

import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;


import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;

public class Controller implements Initializable {

    @FXML
    Button btnAc;

    @Override
    public void initialize(URL location, ResourceBundle resources) {

        btnAc.setOnAction(event -> {

         

            try {
                Parent rootNode= FXMLLoader.load(getClass().getResource("yeniSayfa.fxml"));
                Stage stage=new Stage();
                Scene scene=new Scene(rootNode);
                stage.setScene(scene);
                stage.showAndWait();

            } catch (IOException e) {
                e.printStackTrace();
            }


        });


    }
}
<!-- sample.fxml -->
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>

<?import javafx.scene.control.Button?>

<GridPane fx:controller="sample.Controller"
          xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10" prefHeight="800" prefWidth="800">

    <Button fx:id="btnAc" GridPane.columnIndex="0" GridPane.rowIndex="1" text="Yeni Pencere Ac"/>

</GridPane>
//YeniSayfa.java
package sample;

import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.stage.Stage;


import java.net.URL;
import java.util.ResourceBundle;

public class YeniSayfa implements Initializable {

    @FXML
    Button geriDon;

    @Override
    public void initialize(URL location, ResourceBundle resources) {

        geriDon.setOnAction(event -> {

            Stage stage=(Stage)geriDon.getScene().getWindow();
            stage.close();

        });
    }
}
<!-- yeniSayfa.fxml -->
<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane xmlns="http://javafx.com/javafx"
            xmlns:fx="http://javafx.com/fxml"
            fx:controller="sample.YeniSayfa"
            prefHeight="400.0" prefWidth="600.0">

    <Button fx:id="geriDon" text="Geri Dön" layoutX="150" layoutY="300"></Button>
</AnchorPane>

 

admin

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir