Visualizzazione dei risultati da 1 a 10 su 16

Hybrid View

  1. #1
    Grazie per la risposta.
    Nell'xml il path è proprio scritto in quel modo come nell'esempio..
    codice:
    "images" + File.separator + "menuImages" + File.separator + "menuPrincipale.jpg"
    è un copia ed incolla.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da salvodj88 Visualizza il messaggio
    Nell'xml il path è proprio scritto in quel modo come nell'esempio..
    codice:
    "images" + File.separator + "menuImages" + File.separator + "menuPrincipale.jpg"
    Non ha senso mettere una cosa del genere letteralmente nel XML .... cioè presa così tutta insieme come stringa non puoi passarla a nessuna delle API standard!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    E come dovrei fare??? ho provato anche a mettere:
    codice:
    "images/menuImages/menuPrincipale.jpg"

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da salvodj88 Visualizza il messaggio
    E come dovrei fare??? ho provato anche a mettere:
    codice:
    "images/menuImages/menuPrincipale.jpg"
    Non so come è fatto in generale il tuo XML ma se avessi un attributo es.

    <xyz ...... path="images/menuImages/menuPrincipale.jpg">

    allora sì, come forma ha senso. Ma essendo un percorso relativo, ci possono essere diverse interpretazioni:
    a) è relativo alla directory "corrente" (non centrano getResource e il classpath).
    b) è relativo alla directory del documento XML (come caso particolare, può coincidere con a) ma ovviamente non è detto).
    c) "images" è da cercare lungo il classpath alla "radice".
    d) "images" è da cercare lungo il classpath relativo al package di una tua classe.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    allora ho una classe ImageProvider dove viene chiamato nel costruttore il readerXML e ne estrapola i dati da elaborare
    codice:
     public ImageProvider() {
            width = 0;
            height = 0;
            nomeImmagine = new HashMap<>();
            readerXML = new ReaderXML();
            readerXML.readerXmlImage();
            caricaImmagini = readerXML.getDatiCaricamentoImmagini();
            for (Map.Entry<String, String> entry : caricaImmagini.entrySet()) {
                String nome = entry.getKey();
                String path = entry.getValue();
                System.out.println("nome: " + nome);
                System.out.println("pathPrimaMappa: " + path);
                try {
                    imgURL = this.getClass().getResource("images" + File.separator + "menuImages" + File.separator + "menuPrincipale.jpg");
                    System.out.println("path:" + path);
                    System.out.println("imgURL"+ imgURL);
                    BufferedImage img = ImageIO.read(imgURL);
                    BufferedImage momentanea = getScaledImage(img, 500, 500);
                    nomeImmagine.put(nome, momentanea);
    //                for (Map.Entry<String, BufferedImage> entry1 : nomeImmagine.entrySet()) {
    //                    String string = entry1.getKey();
    //                    BufferedImage bufferedImage = entry1.getValue();
    //                    System.out.println("nome: " + string + " bufferedImage: " + bufferedImage);
    //                }
                } catch (IOException ex) {
                    Logger.getLogger(ImageProvider.class.getName()).log(Level.SEVERE, null, ex);
                }
    
            }
        }
    la classe readerXML che legge il file XML

    codice:
      public void readerXmlImage() {
            try {
                DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
                DocumentBuilder builder = documentFactory.newDocumentBuilder();
                Document document = builder.parse(new File("./src/it/igpe/hookBoxingGUI/Immagini.xml"));
                NodeList immagine = document.getElementsByTagName("Immagine");
    //            System.out.println("Totale persone: " + immagine.getLength());
                for (int i = 0; i < immagine.getLength(); i++) {
                    Node nodo = immagine.item(i);
                    if (nodo.getNodeType() == Node.ELEMENT_NODE) {
                        Element persona = (Element) nodo;
                        String path = persona.getElementsByTagName("Path").item(0).getFirstChild().getNodeValue();
                        String nome = persona.getElementsByTagName("Nome").item(0).getFirstChild().getNodeValue();
                        this.datiCaricamentoImmagini.put(nome, path);
    //                    System.out.println("Nome: " + nome);
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    e questo è l'xml :

    codice:
    <root>
        <Immagine>
            <Path>
               "images/menuImages/menuPrincipale.jpg"
            </Path>
            <Nome>
                "menu" 
            </Nome>
        </Immagine>
    </root>
    il percorso non è relativo in base a dove viene chiamato il path?? quindi dove è il .class dell'imageprovider o comunque nel package dove è il .java dell'imageprovider?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da salvodj88 Visualizza il messaggio
    codice:
            <Path>
               "images/menuImages/menuPrincipale.jpg"
            </Path>
            <Nome>
                "menu" 
            </Nome>
    Innanzitutto la quotazione così con " " è poco adatta e anche molto scomoda! Se prendi l'intero nodo di testo hai oltretutto i vari spazi e newline attorno, quindi per prima cosa dovresti trimmare la stringa e poi eliminare pure la quotazione.

    Quote Originariamente inviata da salvodj88 Visualizza il messaggio
    il percorso non è relativo in base a dove viene chiamato il path?? quindi dove è il .class dell'imageprovider o comunque nel package dove è il .java dell'imageprovider?
    Se usi getResource sul Class della tua classe ImageProvider e la specifica inizia con images (senza / iniziale), allora certo, "images" è intesa relativa al package di ImageProvider.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    E come dovrei modificare quindi il reader e l'xml?? purtroppo su xml non so moltissimo..

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.