Tartalomjegyzék

< Java FX

JavaFX - Párbeszédablak

Gyermekablak létrehozása

A következő egy hozzáadásablak alapját szolgáltatja.

AddStage
package views.add;
 
import javafx.scene.Scene;
import javafx.stage.Modality;
import javafx.stage.Stage;
 
public class AddStage extends Stage {
    public AddStage() {
        this.setTitle("Hozzáadás");
        this.initModality(Modality.APPLICATION_MODAL);
        AddPanel addPanel = new AddPanel();
        Scene scene = new Scene(addPanel, 300, 200);
        this.setScene(scene);
    }
}

Az AddPanel-en találhatók a további kontrollok.

Modális ablak beállítása

this.initModality(Modality.APPLICATION_MODAL);

Ablak bezárása

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

A showAndWait()

A show() utáni utasítások az ablak megjelenítésétől függetlenül lefutnak.

System.out.println("Hozzáadás...");            
addView.show();
 
System.out.println("Az adatok újrakérése");
mainView.getTablePanel().getProducts();

Ha a showAndWait() metódust használjuk, az ezt követő metódusok megvárják az ablak bezárását.

System.out.println("Hozzáadás...");            
addView.showAndWait();
 
System.out.println("Az adatok újrakérése");
mainView.getTablePanel().getProducts();

A Dialog osztály

src/TestDialog.java
import javafx.scene.control.ButtonType;
import javafx.scene.control.Dialog;
import javafx.scene.control.ButtonBar.ButtonData;
 
public class TestDialog extends Dialog<String> {
 
    public TestDialog() {
 
        this.setTitle("Teszt");
        ButtonType type = new ButtonType("Ok", ButtonData.OK_DONE);
        this.getDialogPane().getButtonTypes().add(type);
        this.setContentText("Teszt");
    }
 
}

A <String> a visszatérési érték típusa.

Megjelenítés:

new TestDialog().show();

Dokumentáció:

Kontrollok tartalomként

src/TestDialog.java
import javafx.scene.control.ButtonType;
import javafx.scene.control.Dialog;
import javafx.scene.control.ButtonBar.ButtonData;
 
public class TestDialog extends Dialog<String> {    
    public TestDialog() {
        this.setTitle("Teszt");
        ButtonType type = new ButtonType("Mentés", 
        ButtonData.OK_DONE);
 
        this.getDialogPane().getButtonTypes().add(type);
        this.getDialogPane().setContent(new AddView());
    }
}
src/AddView.java
import javafx.scene.layout.VBox;
import views.InputPanel;
 
public class AddView extends VBox {
    InputPanel nameInput;
    InputPanel actnumberInput;
    public AddView() {
        this.initComponent();
        this.addComponent();
    }
    private void initComponent() {
        this.nameInput = new InputPanel("Név");
        this.actnumberInput = new InputPanel("Cikkszám");
    }
    private void addComponent() {
        this.getChildren().add(this.nameInput);
        this.getChildren().add(this.actnumberInput);
    }    
}
InputPanel.java
package views;
 
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
 
public class InputPanel extends HBox {
    Label label;
    TextField field;
    public InputPanel() {
        this.initComponent();
        this.addComponent();
    }
    public InputPanel(String text) {
        this.initComponent();
        this.addComponent();
        this.label.setText(text);
    }
    private void initComponent() {
        this.label = new Label();
        this.field = new TextField();
        this.label.setMinWidth(100);
    }
    private void addComponent() {
        this.getChildren().add(this.label);
        this.getChildren().add(this.field);
    }
}

Futtatás:

new TestDialog().show();

Kép

dialog.setGraphic(new ImageView(this.getClass().getResource("kepnev.png").toString()));

Alert

Törlést megerősítő metódus:

    private boolean confirmDelete() {
        Alert alert = new Alert(AlertType.CONFIRMATION );
        alert.setTitle("Törlés");
        alert.setHeaderText("Törlés");
        alert.setContentText("Biztosan törlöd?");
        alert.showAndWait();
        if (alert.getResult() == ButtonType.OK) 
            return true;
        else 
            return false;
    }