Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [java] problema compareTo

    Ciao a tutti,
    ho un problema con il metodo "public int compareTo(Object o)".
    riporto qui sotto il mio codice

    ------------------------------------
    import java.text.*;
    import java.util.*;
    import java.lang.*;
    import java.io.*;
    public class Song implements Comparable
    {
    private String title;//variabile d'istanza contiene il titolo del brano
    private String artist;//variabile d'istanza contiene l'artista che ha intepretato il brano
    private String album;//variabile d'istanza contiene l'album da cui e' tratto il brano
    private int track;//variabile d'istanza contiene posizione del brano all'interno del cd
    private int year;//variabile d'istanza contiene l'anno di pubblicazione da cui e' tratto il brano
    private String genre;//variabile d'istanza contiene il riferimento al genere

    public Song(String a, String t, String l, int y, int n, String g)//COSTRUTTORE che intrepreta i parametri come le informazioni caratterizzanti di un brano
    {

    this.artist=a;
    this.title=t;
    this.album=l;
    this.year=y;
    this.track=n;
    this.genre=g;
    }

    //METODI get
    public String getTitle()
    {
    return title;
    }

    public String getArtist()
    {
    return artist;
    }

    public String getAlbum()
    {
    return album;
    }

    public int getTrack()
    {
    return track;
    }

    public int getYear()
    {
    return year;
    }

    public String getGenre()
    {
    return genre;
    }

    //METODI set;

    public void setTitle(String t)
    {
    title=t;
    }
    public void setArtist(String a)
    {
    artist=a;
    }
    public void setAlbum(String l)
    {
    album=l;
    }
    public void setTrack(int n)
    {
    track=n;
    }
    public void setYear(int y)
    {
    year=y;
    }
    public void setGenre(String g)
    {
    genre=g;
    }



    public String toString()
    {
    return artist + "|" + title + "|" + album + "|" + Integer.toString(year) + "|" + Integer.toString(track) + "|" + genre ;
    }






    public int compareTo(Object o)
    {
    Song a = (Song)o;
    return this.compareTo(a);
    }




    public int compareTo(Song a)
    {







    if((this.artist.compareTo(a.artist))+(this.title.c ompareTo(a.title))+(this.album.compareTo(a.album)) +(this.track.compareTo(a.track))==0)

    {
    return 0;
    }else{
    if((this.artist.compareTo(a.artist))+(this.title.c ompareTo(a.title))+(this.album.compareTo(a.album)) +(this.track.compareTo(a.track))<0)

    {
    return 1;
    }
    else{
    return -1;
    }
    }



    }







    }

    -----------------------------------------------------
    Il problema sta nella riga in cui faccio il compareTo di tre 3 stringhe(titolo album artista) piu' un int (track), ed e proprio quest'ultimo che mi genera un errore del tipo:
    "int cannont be dereferenced "

    1-ERROR-if((this.artist.compareTo(a.artist))+(this.title.c ompareTo(a.title))+(this.album.compareTo(a.album)) +(this.track.compareTo(a.track))==0)

    2-ERROR-if((this.artist.compareTo(a.artist))+(this.title.c ompareTo(a.title))+(this.album.compareTo(a.album)) +(this.track.compareTo(a.track))<0)


    Ne ho provate un po' di tutti i colori, cercando di castare il tipo primitivo (int track)ad Integer ma continuo a sbagliare, e non riesco a trovare una soluzione .
    Spero che qualcuno riesca ad illuminarmi.
    Saluti P.

  2. #2
    scusa perchè non usi la ridifinizione di equals per confrontare 2 oggetti? è il metodo + usato x confrontare 2 oggetti.

    public boolean equals (Object o) {
    if(o!=null && o.getClass().equals(getClass)) {
    Song s = (Song)o;
    return (title.equals(s.title)) && (artist.equals(s.artist)) &&
    (album.equals(s.album)) && (genre.equals(s.genre)) && (track==s.track) && (year==s.years);
    }
    else
    return false;
    }
    HiFly !!!!!!!!!!!!!

  3. #3
    CompareTo è diverso da equals. Uno restituisce un intero che indica se un oggetto è minore di un altro secondo l'idea che ha il programmatore di minore. Equals verifica l'uguaglianza di due oggetti (sempre secondo l'idea che ne ha il programmatore) e restituisce un boolean.

    Non puoi usare compareTo per confrontare due interi perchè il tipo intero è un tipo primitivo (non un oggetto).

    Le alternative sono due:

    * mantieni il tipo intero e fai i confronti tramite le sottrazioni
    quindi usi (this.track-a.track)

    * confronti due Integer con il metodo compareTo in questo modo:
    (new Integer(this.track)).compareTo(new Integer(a.track))

    Ricorda anche di controllare che l'oggetto o passato come parametro sia di tipo Song prima.

  4. #4
    nell'accezione del suo programma compareTo ed equals erano equivalenti
    HiFly !!!!!!!!!!!!!

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Come ti e stato detto, il metodo compareTo() devi utilizzarlo per gli OGGETTI; per verificare l'uguagluanza/disuguaglianza tra i campi interi utilizza i normali operatori <, ==, >.

    Bada inoltre che il modo in cui stai impostando i confronti è del tutto sbagliato, perche non puoi controllare i tre campi stringa insieme e sommare il risultato e vedere se la somma è zero, perche se la prima coppia è uguale ottieni '0', se la seconda coppia ti dà '-1', mentre la terza coppia ti dà '1', sommando ottieni '0' e concludi che i tre campi sono uguali, mentre penso che tu voglia considerarli diversi in questo caso. Devi fare un confronto campo per campo, un campo alla volta.


  6. #6

    [java] NullPointerException

    Salve di nuovo a tutti,
    Volevo prima di tutto ringraziare TUTTE le persone che hanno risposto ai miei post perche' mi hanno fatto capire molte cose che stavo sbagliando.GRAZIE!!))ora pero' sono di nuovo bloccato su un eccezione un po' strana (NullPointerException),che gia mi si e' presentata in passato come tipo di eccezione, ma in questo caso non capisco dove si verifica e perche'.
    la cosa strana che alla prima esecuzione la cosa sembra funzionare mentre se poi richiamo il file e cerco di aggiungere altri brani o fare le altre operazioni collegate ai metodi dello switch mi si blocca e mi da questa eccezione .fate anche voi un paio di prove per capire meglio il problma.
    vi riporto qui sotto il codice delle tre classi:
    ------prima classe--------
    import java.text.*;
    import java.util.*;
    import java.lang.*;
    import java.io.*;
    public class Song implements Comparable
    {
    private String title;//variabile d'istanza contiene il titolo del brano
    private String artist;//variabile d'istanza contiene l'artista che ha intepretato il brano
    private String album;//variabile d'istanza contiene l'album da cui e' tratto il brano
    private int track;//variabile d'istanza contiene posizione del brano all'interno del cd
    private int year;//variabile d'istanza contiene l'anno di pubblicazione da cui e' tratto il brano
    private String genre;//variabile d'istanza contiene il riferimento al genere

    private String tmpTitle;
    private String tmpTitle2;
    private String tmpArtist;
    private String tmpArtist2;
    private String tmpAlbum;
    private String tmpAlbum2;




    public Song(String a, String t, String l, int y, int n, String g)//COSTRUTTORE che intrepreta i parametri come le informazioni caratterizzanti di un brano
    {

    this.artist=a;
    this.title=t;
    this.album=l;
    this.year=y;
    this.track=n;
    this.genre=g;
    }

    //METODI get
    public String getTitle()
    {
    return title;
    }

    public String getArtist()
    {
    return artist;
    }

    public String getAlbum()
    {
    return album;
    }

    public int getTrack()
    {
    return track;
    }

    public int getYear()
    {
    return year;
    }

    public String getGenre()
    {
    return genre;
    }

    //METODI set;

    public void setTitle(String t)
    {
    title=t;
    }
    public void setArtist(String a)
    {
    artist=a;
    }
    public void setAlbum(String l)
    {
    album=l;
    }
    public void setTrack(int n)
    {
    track=n;
    }
    public void setYear(int y)
    {
    year=y;
    }
    public void setGenre(String g)
    {
    genre=g;
    }



    public String toString()
    {
    return artist + "|" + title + "|" + album + "|" + Integer.toString(year) + "|" + Integer.toString(track) + "|" + genre ;
    }






    public int compareTo(Object o)
    {
    Song a = (Song)o;
    return this.compareTo(a);
    }




    public int compareTo(Song a)
    {

    tmpArtist=artist;
    tmpArtist= tmpArtist.replaceAll(" ", "");

    tmpArtist2=a.artist;
    tmpArtist2= tmpArtist2.replaceAll(" ", "");



    tmpTitle = title;
    tmpTitle = tmpTitle.replaceAll(" ", "");

    tmpTitle2 = a.title;
    tmpTitle2 = tmpTitle2.replaceAll(" ", "");

    tmpAlbum = album;
    tmpAlbum = tmpAlbum.replaceAll(" ", "");

    tmpAlbum2 = a.album;
    tmpAlbum2 = tmpAlbum2.replaceAll(" ", "");



    if(((this.tmpArtist.compareToIgnoreCase(tmpArtist2 ))==0)&&((this.tmpTitle.compareToIgnoreCase(tmpTit le2))==0)&&((new Integer(this.track)).compareTo(new Integer(a.track))==0)&&((this.tmpAlbum.compareToIg noreCase(tmpAlbum2))==0))
    {
    return 0;
    }else{
    if(((this.tmpArtist.compareToIgnoreCase(tmpArtist2 ))<0)||((this.tmpTitle.compareToIgnoreCase(tmpTitl e2))<0)||((new Integer(this.track)).compareTo(new Integer(a.track))<0)||((this.tmpAlbum.compareToIgn oreCase(tmpAlbum2))<0))
    {
    return -1;
    }else{
    return 1;
    }
    }



    }


    }

    -----------------------seconda classe-----------------
    import java.text.*;
    import java.util.*;
    import java.lang.*;
    import java.io.*;
    import java.lang.StrictMath;
    public class DB
    {
    private int nsong;//variabile di istanza contenente il numero di canzoni presenti nel catalogo
    private String filename;//variabile d'istanza contenente le canzoni presenti in catalogo, songs e' realizzato tramite un array ed avra' dimensione fissata pari a 1000 elementi
    private Song[] songs;//variabile d'istanza contenente il nome del file su cui viene salvato e da cui viene ripristinato il catalogo


    public DB(String fn)//COSTRUTTORE
    {
    filename = fn;
    reload();
    }


    public String toString()//METODO toString
    {
    String str = "";
    if(songs != null)
    for(int i = 0;i<songs.length;i++)
    str += songs[i].toString() + "\n";
    return str;
    }

    public void write()//METODO write
    {
    File file =new File(filename);
    int i = 0;
    try
    {
    if(!file.exists()) file.createNewFile();
    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(filename)));
    if (songs != null)
    for (i = 0; i < songs.length; i++)
    out.println(songs[i].toString());
    out.close ();
    System.out.println ("\n\n- File salvato -");
    }
    catch (IOException e)
    {
    System.out.println ("Errore nella scrittura del file");
    }
    }

    public void reload()//METODO reload()
    {
    try
    {
    File file = new File (filename);
    BufferedReader f;
    String str = "", stmp;
    String []tmpArray;
    if (file.exists ())
    {
    f = new BufferedReader (new FileReader (file));

    while ((stmp = f.readLine()) != null)
    {
    str += stmp + "&";
    }
    str = str.substring (0, str.length() - 1);
    tmpArray = str.split ("&");
    songs = new Song [tmpArray.length];

    f.close ();
    System.out.println ("\n\n- File caricato -");
    }
    else System.out.println ("\n\n- File inesistente! Verra' creato in seguito -");

    }
    catch (Exception e)
    {
    System.out.println ("Errore");
    }
    }

    public Object clone()//METODO clone()
    {
    DB newDB = new DB(filename);
    return newDB;
    }
    //--------------------------
    public void backup(String newFileName)
    {
    String tmp = filename;
    filename = newFileName;
    write();
    filename = tmp;
    }
    //-------------------------------------------
    public void addSong(Song newSong)//METODO addsong
    {
    Song []tmp;
    if (songs == null)
    {
    tmp = new Song [1];
    }
    else
    {
    tmp = new Song[songs.length +1];
    }
    tmp [0] = newSong;
    for(int i = 1; i<tmp.length;i++)
    tmp[i]= songs[i -1];

    songs = new Song [tmp.length];
    for(int i = 0; i<songs.length;i++)
    songs[i] = tmp[i];

    }
    }



    ------------terza classe-------------------------
    import java.util.*;
    import java.io.*;
    import java.text.*;

    public class DJ
    {
    //--------------------------------------------------

    public static int getPosInt ()
    {
    BufferedReader input = new BufferedReader (new InputStreamReader (System.in));
    int numero = -1;
    do
    {
    try
    {
    numero = Integer.parseInt (input.readLine ());
    }
    catch (IOException e)
    {
    System.out.println ("Errore nella lettura del numero");
    return -1;
    }
    catch (NumberFormatException e)
    {
    System.out.println ("Inserire un numero valido");
    continue;
    }
    }
    while (numero < 0);
    return numero;
    }


    private static String getString ()//MTODO getString
    {
    BufferedReader input = new BufferedReader (new InputStreamReader (System.in));
    String str;
    try
    {
    str = input.readLine ();
    }
    catch (IOException e)
    {
    System.out.println ("Errore nella lettura della stringa");
    str = null;
    }
    return str;
    }

    public static void main(String [] args)
    {
    int opz, limit;
    DB filename = null;
    String fn;

    while(true)
    {
    //stampa a video il menu
    System.out.println("\n\n1) Crea un nuovo catalogo o ripristino di un catalogo salvato su disco ");
    if(filename!=null)
    {
    System.out.println ("2) Aggiungi di un brano al catalogo");
    System.out.println ("3) Rimozione di un brano dal catalogo");
    System.out.println ("4) Salvataggio del contenuto corrente del catalogo su disco");
    System.out.println ("5) ricarica del contenuto dal disco con conseguente eliminazione del contenuto corrente");
    System.out.println ("6) Visualizza contenuti del catalogo");
    System.out.println ("7) Crea una copia in un altro file di testo il cui e' specificato da l'utente");
    System.out.println ("8) Ricerca brani all'interno del catalogo");
    System.out.println ("9) Ordinamento del catalogo ");
    System.out.println ("10) Pulizia del catalogo ");
    limit = 9;
    }


    else limit = 1;
    System.out.println("0)Esci");
    do{
    System.out.println("\nscelta");
    opz = getPosInt();
    if(opz == -1) break;
    }
    while((opz<0)||(opz>limit));

    switch(opz)
    {
    case 1:System.out.print("Inserire il nome del catalogo: ");
    fn = getString();
    filename = new DB(fn);
    break;
    case 2:int scelta;
    String title;//variabile d'istanza contiene il titolo del brano
    String artist;//variabile d'istanza contiene l'artista che ha intepretato il brano
    String album;//variabile d'istanza contiene l'album da cui e' tratto il brano
    int track;//variabile d'istanza contiene posizione del brano all'interno del cd
    int year;//variabile d'istanza contiene l'anno di pubblicazione da cui e' tratto il brano
    String genre;//

    do
    {
    System.out.println("[1]Inserisci un nuovo brano al catalogo: ");
    System.out.println("[0]Torna indietro");
    System.out.print ("\nscelta: ");
    scelta = getPosInt ();
    if(scelta == -1 ) break;
    }
    while((scelta <0)||(scelta>1));
    if(scelta<=0)break;



    if(scelta == 1)
    {

    System.out.println("\nInserire L'Artista del brano: ");
    artist = getString();

    System.out.println("\nInserire Il Titolo del brano: ");
    title = getString();

    System.out.println("\nInserire ll Nome Dell' Album : ");
    album = getString();

    System.out.println("\nInserire L'Anno di Produzione del brano: ");
    year = getPosInt();
    System.out.println("\nInserire Il Numero della Traccia : ");
    track = getPosInt();

    System.out.println("\nInserire Il Genere del brano: ");
    genre = getString();




    Song newSong = new Song(artist, title, album, year, track, genre);
    filename.addSong(newSong);

    }
    break;
    case 4:filename.write();
    break;
    case 5:filename.reload();
    break;
    case 6:System.out.println("\n\n---M P 3---");
    System.out.println(filename);
    break;
    case 7:System.out.print ("\n\nInserisci il nuovo nome: ");
    filename.backup (getString ());
    break;






    case 0:return ;//esce dal programma
    }

    }
    }
    }
    ----
    questo e' tutto per ora.
    attendo il vostro aiuto, grazie di tutto ancora!

  7. #7
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Ti ho sistemato l'errore del NullPointerException, che avviene quanto tenti di invocare metodi su un oggetto nullo, ed era causato da una cattiva lettura del file evidentemente. La versione che ti propongo io usa la serializzazione per memorizzare oggetti in un file, questo significa che basta 1 sola istruzione per memorizzare tutto l'oggetto e 1 sola per leggere tutto l'oggetto, in modo automatico, senza scrivere uno ad uno i campi dell'oggetto nel file. Se ti va bene usalo. In pratica sono stati cambiati i metodi write w reload, e qlcosina nello switch (opzione 1 e 5). Tra l'altro cerca di organizzare meglio il codice, distribuendo meglio i compiti fra le classi, il metodo reload dovrebbe essere static. Infine quando posti del codice nel forum usa il tag CODE per mantenere l'indentazione.

    Bada che se usi la serializzazione, se fai delle modifiche alla classe, e cerchi ti ricaricare un ctalogo precedentemente salvato, ti darà errore, perche quell'oggetto e di una classe precedente, pero il programma non si impalla.



    codice:
    ********    CLASSE DB     *****
    
    import java.text.*; 
    import java.util.*; 
    import java.lang.*; 
    import java.io.*; 
    import java.lang.StrictMath; 
    
    public class DB implements Serializable
    { 
    private int nsong;//variabile di istanza contenente il numero di canzoni presenti nel catalogo 
    private String filename;//variabile d'istanza contenente le canzoni presenti in catalogo, songs e' realizzato tramite un array ed avra' dimensione fissata pari a 1000 elementi 
    private Song[] songs;//variabile d'istanza contenente il nome del file su cui viene salvato e da cui viene ripristinato il catalogo 
    
    
    public DB(String fn)//COSTRUTTORE 
    { 
    filename = fn; 
    reload(); 
    } 
    
    
    public String toString()//METODO toString 
    { 
    String str = ""; 
    if(songs != null) 
    for(int i = 0;i<songs.length;i++) 
    str += songs[i].toString() + "\n"; 
    return str; 
    } 
    
    
    /*
    public void write()//METODO write 
    { 
    File file =new File(filename); 
    int i = 0; 
    try 
    { 
    if(!file.exists()) file.createNewFile(); 
    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(filename))); 
    if (songs != null) 
    for (i = 0; i < songs.length; i++) 
    out.println(songs[i].toString()); 
    out.close (); 
    System.out.println ("\n\n- File salvato -"); 
    } 
    catch (IOException e) 
    { 
    System.out.println ("Errore nella scrittura del file"); 
    } 
    } 
    
    */
    
    public void write()//METODO write 
    { 
    	try{
    		ObjectOutputStream out =
    		new ObjectOutputStream(
    		new BufferedOutputStream(
    		new FileOutputStream(filename)));
    		//scrivo nel file questo oggetto
    		out.writeObject(this);
    		out.close();
    		System.out.println ("\n\n- File salvato -"); 
    	}
    	catch (Exception e){
    		System.out.println ("Errore nella scrittura del file\n\n"); 
    		System.out.print(e);
    	}
    }
    
    public DB reload(){ //METODO reload()
    	File file = new File (filename);
    	if (! file.exists ()){
    		System.out.println ("\n\n- File inesistente! Verra' creato in seguito -"); 
    		return null;
    	}
    	Object o;
    	try{
    		ObjectInputStream in =
    		new ObjectInputStream(
    		new BufferedInputStream(
    		new FileInputStream(filename)));
    		o = in.readObject();
    	}
    	catch (Exception e){
    		System.out.print("errore nella lettura dei file\n\n" + e);
    		return null;
    	}
    	return (DB)o;
    }
    		
    		
    /*
    public void reload()//METODO reload() 
    { 
    try 
    { 
    File file = new File (filename); 
    BufferedReader f; 
    String str = "", stmp; 
    String []tmpArray; 
    if (file.exists ()) 
    { 
    f = new BufferedReader (new FileReader (file)); 
    
    while ((stmp = f.readLine()) != null) 
    { 
    str += stmp + "&"; 
    } 
    str = str.substring (0, str.length() - 1); 
    tmpArray = str.split ("&"); 
    songs = new Song [tmpArray.length]; 
    
    f.close (); 
    System.out.println ("\n\n- File caricato -"); 
    } 
    else System.out.println ("\n\n- File inesistente! Verra' creato in seguito -"); 
    
    } 
    catch (Exception e) 
    { 
    System.out.println ("Errore"); 
    } 
    } 
    
    */
    
    
    public Object clone()//METODO clone() 
    { 
    DB newDB = new DB(filename); 
    return newDB; 
    } 
    //-------------------------- 
    public void backup(String newFileName) 
    { 
    String tmp = filename; 
    filename = newFileName; 
    write(); 
    filename = tmp; 
    } 
    //------------------------------------------- 
    public void addSong(Song newSong)//METODO addsong 
    { 
    Song []tmp; 
    if (songs == null) 
    { 
    tmp = new Song [1]; 
    } 
    else 
    { 
    tmp = new Song[songs.length +1]; 
    } 
    tmp [0] = newSong; 
    for(int i = 1; i<tmp.length;i++) 
    tmp[i]= songs[i -1]; 
    
    songs = new Song [tmp.length]; 
    for(int i = 0; i<songs.length;i++) 
    songs[i] = tmp[i]; 
    
    } 
    } 
    
    
    *******************************
    codice:
    *************  CLASSE DJ  ***********
    
    import java.util.*; 
    import java.io.*; 
    import java.text.*; 
    
    public class DJ 
    { 
    //-------------------------------------------------- 
    
    public static int getPosInt () 
    { 
    BufferedReader input = new BufferedReader (new InputStreamReader (System.in)); 
    int numero = -1; 
    do 
    { 
    try 
    { 
    numero = Integer.parseInt (input.readLine ()); 
    } 
    catch (IOException e) 
    { 
    System.out.println ("Errore nella lettura del numero"); 
    return -1; 
    } 
    catch (NumberFormatException e) 
    { 
    System.out.println ("Inserire un numero valido"); 
    continue; 
    } 
    } 
    while (numero < 0); 
    return numero; 
    } 
    
    
    private static String getString ()//MTODO getString 
    { 
    BufferedReader input = new BufferedReader (new InputStreamReader (System.in)); 
    String str; 
    try 
    { 
    str = input.readLine (); 
    } 
    catch (IOException e) 
    { 
    System.out.println ("Errore nella lettura della stringa"); 
    str = null; 
    } 
    return str; 
    } 
    
    public static void main(String [] args) 
    { 
    int opz, limit; 
    DB filename = null; 
    String fn; 
    
    while(true) 
    { 
    //stampa a video il menu 
    System.out.println("\n\n1) Crea un nuovo catalogo o ripristino di un catalogo salvato su disco "); 
    if(filename!=null) 
    { 
    System.out.println ("2) Aggiungi di un brano al catalogo"); 
    System.out.println ("3) Rimozione di un brano dal catalogo"); 
    System.out.println ("4) Salvataggio del contenuto corrente del catalogo su disco"); 
    System.out.println ("5) ricarica del contenuto dal disco con conseguente eliminazione del contenuto corrente"); 
    System.out.println ("6) Visualizza contenuti del catalogo"); 
    System.out.println ("7) Crea una copia in un altro file di testo il cui e' specificato da l'utente"); 
    System.out.println ("8) Ricerca brani all'interno del catalogo"); 
    System.out.println ("9) Ordinamento del catalogo "); 
    System.out.println ("10) Pulizia del catalogo "); 
    limit = 9; 
    } 
    
    
    else limit = 1; 
    System.out.println("0)Esci"); 
    do{ 
    System.out.println("\nscelta"); 
    opz = getPosInt(); 
    if(opz == -1) break; 
    } 
    while((opz<0)||(opz>limit)); 
    
    switch(opz) 
    { 
    case 1:System.out.print("Inserire il nome del catalogo: "); 
    fn = getString(); 
    
    	filename = new DB(fn); 
    	filename = filename.reload();
    	if(filename == null){
    		filename = new DB(fn);
    	}
    
    break; 
    case 2:int scelta; 
    String title;//variabile d'istanza contiene il titolo del brano 
    String artist;//variabile d'istanza contiene l'artista che ha intepretato il brano 
    String album;//variabile d'istanza contiene l'album da cui e' tratto il brano 
    int track;//variabile d'istanza contiene posizione del brano all'interno del cd 
    int year;//variabile d'istanza contiene l'anno di pubblicazione da cui e' tratto il brano 
    String genre;// 
    
    do 
    { 
    System.out.println("[1]Inserisci un nuovo brano al catalogo: "); 
    System.out.println("[0]Torna indietro"); 
    System.out.print ("\nscelta: "); 
    scelta = getPosInt (); 
    if(scelta == -1 ) break; 
    } 
    while((scelta <0)||(scelta>1)); 
    if(scelta<=0)break; 
    
    
    
    if(scelta == 1) 
    { 
    
    System.out.println("\nInserire L'Artista del brano: "); 
    artist = getString(); 
    
    System.out.println("\nInserire Il Titolo del brano: "); 
    title = getString(); 
    
    System.out.println("\nInserire ll Nome Dell' Album : "); 
    album = getString(); 
    
    System.out.println("\nInserire L'Anno di Produzione del brano: "); 
    year = getPosInt(); 
    System.out.println("\nInserire Il Numero della Traccia : "); 
    track = getPosInt(); 
    
    System.out.println("\nInserire Il Genere del brano: "); 
    genre = getString(); 
    
    
    
    
    Song newSong = new Song(artist, title, album, year, track, genre); 
    filename.addSong(newSong); 
    
    } 
    break; 
    case 4:filename.write(); 
    break; 
    case 5:
    	DB tempDB = filename.reload();
    	if(tempDB != null){
    		filename = tempDB;
    		System.out.println(filename);
    		}
    break; 
    case 6:System.out.println("\n\n---M P 3---"); 
    System.out.println(filename); 
    break; 
    case 7:System.out.print ("\n\nInserisci il nuovo nome: "); 
    filename.backup (getString ()); 
    break; 
    
    
    
    
    
    
    case 0:return ;//esce dal programma 
    } 
    
    } 
    } 
    } 
    
    
    *****************************

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 © 2024 vBulletin Solutions, Inc. All rights reserved.