Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:java:java_fx:mvc

Tartalomjegyzék

< Java FX

JavaFX MVC

FXML

app01/
  `-src/
     |-controllers/
     | `-MainController.java
     |-fxml/
     | `-MainView.fxml
     `models/
       `-MainModel.java

App.java
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
 
public class App extends Application {
    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource(
            "fxml/MainView.fxml"));
 
        Scene scene = new Scene(root, 300, 250);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[] args) throws Exception {        
        launch(args);
    }
}
fxml/MainView.fxml
<?xml version="1.0" encoding="UTF-8"?>
 
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
 
<VBox maxHeight="-Infinity" 
    maxWidth="-Infinity" 
    minHeight="-Infinity" 
    minWidth="-Infinity" 
    prefHeight="400.0" 
    prefWidth="600.0" 
    xmlns="http://javafx.com/javafx/8" 
    xmlns:fx="http://javafx.com/fxml/1" 
    fx:controller="controllers.MainController">
    <children>
        <Label text="Label" />
        <Button mnemonicParsing="false" 
            onAction="#onActionButton" 
            text="Button" />
    </children>
</VBox>
controllers/MainController.java
package controllers;
 
import javafx.event.Event;
import javafx.fxml.FXML;
import models.MainModel;
 
public class MainController {
    MainModel mainModel = new MainModel();
    @FXML
    private void onActionButton(Event event) {
        System.out.println("Ez is Kattintás törtétn");        
        System.out.println(mainModel.getNum());
        event.consume();
    }
 
}
models/MainModel.java
package models;
 
public class MainModel {
    public int getNum() {
        return 15;
    }
}

Csak Java

app01/
  `-src/
     |-controllers/
     | `-MainController.java
     |-models/
     | `-MainModel.java
     `views/
       `-MainView.java
App.java
import controllers.MainController;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
import models.MainModel;
import views.MainView;
 
public class App extends Application {
    public void start(Stage primaryStage) {
        MainView mainWindow = new MainView();
        MainModel mainModel = new MainModel();
        new MainController(mainWindow, mainModel);
 
        Scene scene = new Scene(mainWindow, 300, 250);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[] args) throws Exception {        
        launch(args);
    }
}
views/MainView.java
package views;
 
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
 
 
public class MainView extends VBox {
    public Button button;
    public MainView() {
        Text text = new Text("Helló Világ");
        button = new Button("Mehet");
        this.getChildren().add(text);
        this.getChildren().add(button);
 
 
    }    
}
controllers/MainController.java
package controllers;
 
import models.MainModel;
import views.MainView;
 
public class MainController {
    MainView mainWindow;
    MainModel mainModel;
    public MainController(MainView mainWindow, MainModel mainModel) {
        this.mainWindow = mainWindow;
        this.mainModel = mainModel;
        eventsHandler();
    }
 
    public void eventsHandler() {
        this.mainWindow.button.setOnAction( event -> {
            System.out.println("Kattintás törtétn");
            System.out.println(mainModel.getNum());
        });
    }    
}
models/MainModel.java
package models;
 
public class MainModel {
    public int getNum() {
        return 15;
    }
}

Egyéb

oktatas/programozas/java/java_fx/mvc.txt · Utolsó módosítás: 2021/09/07 10:46 szerkesztette: admin