Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    213

    Problema con oggetto URL, nullPointerException

    Ciao a tutti.
    Ho questa semplice riga che mi dà problemi:

    URL indexUrl = getClass().getResource("images/" + "comments.txt" );

    Da quello che ho capito, perchè sono scarso in java, questa riga dovrebbe caricare dalla cartella images delle immagini. A queste immagini sono associate dei commenti. Questa riga l'ho estratta da un programma che sto studiando che per comodità vi posto. La mia domanda per ora è questa dove deve stare la cartella images affinchè venga trovata? Grazie mille.
    codice:
    package com.mokabyte.mokabook.javaBeans.photoAlbum;
    import java.awt.*;
    import java.beans.*;
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import javax.swing.*;
     public class PhotoAlbum extends JPanel {
      private  Vector comments = new Vector();
      private int imageIndex;
      public PhotoAlbum() {
       super();
       setLayout(new BorderLayout());
       setupComments();
       imageIndex = 0;
       showNext();
      }
      private void setupComments() {
       try {
        URL indexUrl = getClass().getResource("images/" + "comments.txt" );//problema nel caricare i dati
        InputStream in = indexUrl.openStream();
        BufferedReader lineReader= new BufferedReader(new InputStreamReader(in));
        String line;
        while((line = lineReader.readLine())!=null)
        comments.add(line);
        }
       catch(Exception e) {
        e.printStackTrace();
        }
      }
      
      public int getImageNumber() {
      return comments.size();
      }
      
      public int getImageIndex() {
      return imageIndex;
      }
      
      public String getImageComment() {
      return (String)comments.elementAt(imageIndex);
      }
      
      public void showNext() {
      int oldImageIndex = imageIndex;
      imageIndex = ((imageIndex +1 ) % comments.size());
      String imageName = "img" + Integer.toString(imageIndex) + ".jpg";
      showImage(getClass().getResource("images/" + imageName));
      String oldImageComment = (String)comments.elementAt(oldImageIndex);
      String currentImageComment = (String)comments.elementAt(imageIndex);
      firePropertyChange("imageComment", oldImageComment, currentImageComment);
      firePropertyChange("imageIndex", oldImageIndex, imageIndex);
      }
      
      private void showImage(URL imageUrl) {
      ImageIcon img = new ImageIcon(imageUrl);
      JLabel picture = new JLabel(img);
      JScrollPane pictureScrollPane = new JScrollPane(picture);
      removeAll();
      add(BorderLayout.CENTER,pictureScrollPane);
      validate();
      }
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da tonino1 Visualizza il messaggio
    Ho questa semplice riga che mi dà problemi:

    URL indexUrl = getClass().getResource("images/" + "comments.txt" );

    dove deve stare la cartella images affinchè venga trovata? Grazie mille.
    Siccome la specifica della risorsa non inizia con / allora quel "images" è relativo al package della classe, quella tirata fuori da getClass() e che corrisponde alla classe PhotoAlbum.
    Quindi la "images" va messa nel package photoAlbum.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Siccome la specifica della risorsa non inizia con / allora quel "images" è relativo al package della classe, quella tirata fuori da getClass() e che corrisponde alla classe PhotoAlbum.
    Quindi la "images" va messa nel package photoAlbum.
    Grazie mille. Funziona perfettamente e posso andare avanti con lo studio. Grazie ancora

  4. #4
    Quote Originariamente inviata da tonyven Visualizza il messaggio
    Grazie mille. Funziona perfettamente e posso andare avanti con lo studio. Grazie ancora

    non piu' di un account a persona, per favore: continua a usare l'altro

    torniamo pure in topic, grazie

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.