JavaFx - IntelliJ - Delucidazioni

di il
1 risposte

JavaFx - IntelliJ - Delucidazioni

Salve a tutti,questo è mio primo post.

Sono un po arrugginito di Java, e mi stavo facendo un ripasso generale.
Ho visto l'introduzione di JavaFx, e sto cercando di capire come funziona in linea teorica.
Dunque quando creo un nuovo progetto sull'ide IntelliJ mi crea in automatico un template formato da due classi e un file fxml.

La prima classe è la main, e qui mi sembra chiaro.
Poi mi crea la classe Controller , dal nome intuisco che mi può servire al controllo del terzo file, la gui fXml .
Correggetemi se sbaglio, ma sembra un modello MVC ?

Ora voglio semplicemente creare una applicazione per togliere la ruggine, un dado software che fa uscire una delle 6 facce dalla gui.

Dal file fxml inserisco un oggetto Pane.

Dal Controller lo istanzio e poi lo inizializzo e ci voglio mettere dentro un Cerchio.

Non funziona... dove sbaglio?

Controller.java
package sample;

import javafx.scene.layout.Pane;
import javafx.scene.shape.Circle;



public class Controller {

    public Pane AreaDisegno;

    public Controller(){
        Circle cerchio = new Circle (100.0f,100.0f,50.0f);
        AreaDisegno = new Pane ();
        cerchio.setVisible (true);
        AreaDisegno.getChildren ().addAll (cerchio);
        AreaDisegno.setVisible (true);
    }
    }
Main.java
package sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
        primaryStage.setTitle("Dado");
        primaryStage.setScene(new Scene(root, 300, 275));
        primaryStage.show();




    }


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

fxml file
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.Pane?>


<Pane fx:id="AreaDisegno" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller" />

1 Risposte

  • Re: JavaFx - IntelliJ - Delucidazioni

    Cioè... credo che aver tentato di metter mano al costruttore e aver spinto all'inizializzazione dell'oggetto AreaDisegno, potrebbe anche avermi fatto creare un nuovo oggetto, perdendo completamente il Riferimento all'oggetto Pane creto su fxml... ma allora come faccio a modificare in corso d'opera gli oggetti dichiarati sul fil fxml ???
Devi accedere o registrarti per scrivere nel forum
1 risposte