Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17
  1. #11
    uhm, c'è qualcosa che mi sfugge.
    allora, io ho un package dove metto i file fxml (com.mp.fxml).
    ed un package dove ho messo i controller e la classe Utils.
    diciamo che la classe Utils è così:
    codice:
    public class Utils {
        public static void openWindow(String fileFxml, String title, int width, int height, boolean resiz) throws IOException {
            Parent root = FXMLLoader.load(getClass().getResource(fileFxml));
            Stage stage = new Stage();
            stage.setTitle(title);
            stage.setScene(new Scene(root, width, height));
            stage.setResizable(resiz);
            stage.show();
        }
    }
    avendo ovviamente errore sul getClass().
    poi ho il controller:
    codice:
    public class ControllerUno {
    
        @FXML
    BorderPane uno;
    
        @FXML
    private void onBtnClicked() throws IOException {
            Utils.openWindow("../fxml/due.fxml", "due", 500, 500, false);
        }
    
    }
    dove il path del file fxml lo passo in quel modo (ho visto degli esempi online, quindi in teoria dovrebbe essere corretto).

    come dovrei modificare quel getClass()??

  2. #12
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da fermat Visualizza il messaggio
    allora, io ho un package dove metto i file fxml (com.mp.fxml).
    ed un package dove ho messo i controller e la classe Utils.
    Quindi hai risorse es. in com/mp/fxml/xxxxx.fxml giusto?
    Hai una CLASSE in quello stesso package com.mp.fxml ? Se sì, usi il class di quella classe e poi il nome è "xxxxx.fxml" senza slash (perché come ripeto, così è RELATIVO al package della classe su cui usi getResource).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #13
    ah ok, è che non ho una classe nel package com.mp.fxml.
    al momento ci sono solo i file fxml.

    sostanzialmente ho:
    • com/mp/fxml/uno.fxml
    • com/mp/fxml/due.fxml
    • com/mp/fxml/menu.fxml

    e:
    • com/mp/testfx/ControllerUno
    • com/mp/testfx/ControllerDue
    • com/mp/testfx/ControllerMenu
    • com/mp/testfx/Main
    • com/mp/testfx/Utils


  4. #14
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da fermat Visualizza il messaggio
    ah ok, è che non ho una classe nel package com.mp.fxml.
    Puoi fare una classe com.mp.fxml.FXMLUtils in cui metti proprio quel metodo openWindow. E il class è proprio FXMLUtils.class. Il nome della risorsa semplicemente "uno.fxml".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #15
    ok, spostando il tutto dentro una classe in quel package funziona.
    codice:
    package com.mp.fxml;
    
    import javafx.fxml.FXMLLoader;
    import javafx.scene.Parent;
    import javafx.scene.Scene;
    import javafx.stage.Stage;
    
    import java.io.IOException;
    
    public class FXMLUtils {
        public static void openWindow(String fileFxml, String title, int width, int height, boolean resiz) throws IOException, ClassNotFoundException {
            Parent root = FXMLLoader.load(FXMLUtils.class.getResource(fileFxml));
            Stage stage = new Stage();
            stage.setTitle(title);
            stage.setScene(new Scene(root, width, height));
            stage.setResizable(resiz);
            stage.show();
        }
    }
    da richiamare così:
    codice:
    package com.mp.testfx;
    
    import com.mp.fxml.FXMLUtils;
    import javafx.fxml.FXML;
    
    import java.io.IOException;
    
    public class ControllerUno {
    
        @FXML
    private void onBtnClicked() {
            try {
                FXMLUtils.openWindow("due.fxml", "due", 500, 500, false);
            } catch (IOException | ClassNotFoundException e) {
                System.out.println(e.getMessage());
            }
        }
    }
    grazie!!

  6. #16
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Tutto ok .... ma perché ClassNotFoundException?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #17
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Tutto ok .... ma perché ClassNotFoundException?
    mi è rimasto li per qualche test che stavo facendo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.