Započni novu temu Ova tema je zaključana, ne možete da menjate postove ili da odgovarate  [ 80 Posta ]  Idi na stranicu 1, 2, 3, 4  Sledeća
Autoru Poruka
PostPoslato: 11.11.2010. 17:59:01 
Korisnikov avatar

Pridružio se: 19.06.2007. 20:50:12
Postovi: 2136
Lokacija: BG
Godina: Dipl.
Smer: IS
Red je da imamo našu temu, s obzirom na broj studenata koji slušaju ovaj predmet.

p.s. Radi li ko ovaj domaći s gui-em? Mogli bismo malo da diskutujemo o problemima vezanim za domaće ili generalno o javi i paternima. Ja konkretno imam problem u vezi sa refreshovanjem parent forme kada izmenim podatke na child formi. Neće pa neće.

E, da, u subotu nema nastave iz paterna, ako neko nije obavešten.

_________________
Arbeit macht frei


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 13.11.2010. 17:00:17 
Korisnikov avatar

Pridružio se: 12.06.2005. 01:18:37
Postovi: 84
Lokacija: Bg
Godina: Apsolvent
Smer: IS
konkretno kakav problem imas? okaci problematicni kod.

_________________
no good start to dance


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 13.11.2010. 17:17:56 
Korisnikov avatar

Pridružio se: 19.06.2007. 20:50:12
Postovi: 2136
Lokacija: BG
Godina: Dipl.
Smer: IS
Rešio. Koristio sam dialog umesto forme. Hvala.

_________________
Arbeit macht frei


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 13.11.2010. 17:28:00 
Moderator
Korisnikov avatar

Pridružio se: 07.11.2007. 20:52:15
Postovi: 5191
Lokacija: У илегали...
Godina: Dipl.
Smer: IS
Jel moze neko da mi pomogne? U pitanju je sledeci kod:


Kod:
        boolean uslov = true;
       
        while (uslov == true) {
            System.out.println(ispisiPocetneOpcije());

            switch (ucitajBrojSaTastature())
            {
                case 1:
                    System.out.println(ispisiOpcijeOsobaIliStudent());
                    if (ucitajBrojSaTastature() == 1)
                    {
                        System.out.println(ispisiOpcijePocetakIliKraj());
                        if (ucitajBrojSaTastature() == 1) unosOsobeIliStudenta(1, 1);
                        else unosOsobeIliStudenta(2, 1);
                    }
                    else
                    {
                        System.out.println(ispisiOpcijePocetakIliKraj());
                        if (ucitajBrojSaTastature() == 1) unosOsobeIliStudenta(1, 2);
                        else unosOsobeIliStudenta(2, 2);
                    }
                    System.out.println("trt");
                    break;
               
                case 2:
                case 3:
                case 4:
                case 5:
               
                    for (int i = 0; i < osobe.listaOsoba.size(); i++)
                    {
                        System.out.println(osobe.listaOsoba.get(i));
                    }
                    break;
               
                case 6:
                case 7:
               
                    uslov = false;
                    break;

                default:
                    uslov = false;
               

            }


Posto se izvrsi case 1 kod, zasto ne ostane u petlji, vec se zavrsi program?


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 14.11.2010. 01:06:11 
Korisnikov avatar

Pridružio se: 09.10.2007. 16:55:15
Postovi: 4003
Lokacija: Vidzilend
Godina: Dipl.
Smer: IS
Pa odradi se break...?! :pitamse:


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 14.11.2010. 10:27:49 
Moderator
Korisnikov avatar

Pridružio se: 07.11.2007. 20:52:15
Postovi: 5191
Lokacija: У илегали...
Godina: Dipl.
Smer: IS
A zar se break ne odnosi na case naredbu. Probao sam i bez brake, uvek isto, odmah zavrsi petlju. Dok se u ostalim case naredbama, petlja fino vrti.


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 14.11.2010. 12:36:27 
Korisnikov avatar

Pridružio se: 12.06.2005. 01:18:37
Postovi: 84
Lokacija: Bg
Godina: Apsolvent
Smer: IS
vidi ovako:
Kod:
boolean uslov = true;

      while (uslov == true) {
         System.out.println("Usao u while");

         switch (ucitajBrojSaTastature()) {
         case 1:
            System.out.println("usao u case 1");
            if (ucitajBrojSaTastature() == 1) {
               System.out.println("usao u if 1");
               if (ucitajBrojSaTastature() == 1)
                  System.out.println("usao u if 2");
               else
                  System.out.println("usao u if 3");
            } else {
               System.out.println("usao u if 4");
               if (ucitajBrojSaTastature() == 1)
                  System.out.println("usao u if 5");
               else
                  System.out.println("usao u if 6");
            }
            System.out.println("trt");
            break;

         case 2:
         case 3:
         case 4:
         case 5:

            System.out.println("usao u case 5");
            break;

         case 6:
         case 7:

            uslov = false;
            break;

         default:
            uslov = false;

         }

      }

   }


testirao sam kod i ovako napisan fino radi(zamenio sam tvoje metode za rad sa listama sa System.out.println), pod uslovom da si ovu metodu napisao ovako:
Kod:
private static int ucitajBrojSaTastature() throws NumberFormatException, IOException {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      int i = Integer.parseInt(br.readLine());
      return i;
   }

ili ti nije dobra gore navedena metoda ili ti metode za rad sa listama bacaju neki izuzetak, ali pre ce biti ovo drugo, prekontrolisi jos jednom koristi debugger.

_________________
no good start to dance


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 14.11.2010. 23:34:10 
Korisnikov avatar

Pridružio se: 19.06.2007. 20:50:12
Postovi: 2136
Lokacija: BG
Godina: Dipl.
Smer: IS
Kolege, koliko je ko upoznat sa kolokvijumom iz ovog predmeta? Ne priča se puno o tome, ja pojma nemam kako će izgledati kolokvijum.

edit: Evo novog domaćeg, a još nisam ni stari završio.

public void writeToFile(Mesto m) {
try {
File data = new File("data.dat");
ObjectOutputStream out = new ObjectOutputStream(
new FileOutputStream(data));
out.writeObject(m);
out.close();
} catch (Exception e) {

}
}

Da li neko zna zašto ova metoda ne radi dobro svoj posao? Naime, napravi se fajl ali je popunjem čudnim stringom, kao neka kineska slova. Serijalizovao sam klasu čija je instanca m, tj. Mesto.

_________________
Arbeit macht frei


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 16.11.2010. 07:54:40 
Korisnikov avatar

Pridružio se: 12.04.2009. 18:59:13
Postovi: 53
Godina: Dipl.
Smer: IS
Zapravo verovatno radi dobro, posto koristis output stream koji pise bajtove a ne slova. Ako to sad ucitas na isti nacin trebao bi da dobijes sve ok.
Ja sam koristio kombinaciju PrintWriter(BufferedWriter(FileWriter))) i pisao stringove ko covek :)

P.S. hoce li biti sutra paterni posto je kolokvijumska nedelja?


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 17.11.2010. 13:39:59 
Korisnikov avatar

Pridružio se: 19.06.2007. 20:50:12
Postovi: 2136
Lokacija: BG
Godina: Dipl.
Smer: IS
Ne, nema paterna sutra, jer piše na domaćem da je potrebno doneti na sledeće vežbe pa datum 24.11. :)
Znači, Knez Miloš, ako vratim taj objekat u program opet, radiće normalno? Palo mi je ovo na pamet, ali nisam probao.
Sad ću da probam. Hvala, kolega.

edit: Ok, uspeo sam da upišem objekat i vratim ga iz fajla, sada me zanima kako da uradim to isto sa više objekata?

_________________
Arbeit macht frei


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 17.11.2010. 19:37:28 
Korisnikov avatar

Pridružio se: 09.10.2007. 16:55:15
Postovi: 4003
Lokacija: Vidzilend
Godina: Dipl.
Smer: IS
Fali ti out.flush()! Pre close. On napise serijalizovani fajl, zato moras svemu sto ucestvuje u save, a to su liste i 3 klase da stavis da implementiraju Serializable! Otvaras fajl sa fileinput i object input! I nema potrebe za new FileOutputStream(data) to si iznad vec napravio! Prosledi samo data


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 18.11.2010. 15:02:11 
Korisnikov avatar

Pridružio se: 19.06.2007. 20:50:12
Postovi: 2136
Lokacija: BG
Godina: Dipl.
Smer: IS
Dodao sam flush(). Ali on pamti samo jedan objekat u fajlu, i jedan objekat posle čita iz fajla. Moram da nađem način da to radi za više objekata. Pada mi na pamet da ubacim da metoda WriteToFile prima niz kao parametar, ali se onda javlja problem kod dodavanja novih objekata jer ih ja dodajem preko ArrayList.

_________________
Arbeit macht frei


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 19.11.2010. 01:52:34 
Korisnikov avatar

Pridružio se: 09.10.2007. 16:55:15
Postovi: 4003
Lokacija: Vidzilend
Godina: Dipl.
Smer: IS
Cek bre kako vise objekata?! Pa imas samo jednu listu, i taj objekat cuvas!


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 19.11.2010. 15:56:44 
Korisnikov avatar

Pridružio se: 19.06.2007. 20:50:12
Postovi: 2136
Lokacija: BG
Godina: Dipl.
Smer: IS
Imam listu objekata, a ja sam u ovoj svojoj metodi prosleđivao samo jedan objekat, a ne celu listu. Imam problem kada prosleđujem listu.

_________________
Arbeit macht frei


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 19.11.2010. 16:37:40 
Moderator
Korisnikov avatar

Pridružio se: 07.11.2007. 20:52:15
Postovi: 5191
Lokacija: У илегали...
Godina: Dipl.
Smer: IS
I ja sam pokusao sa prosledjivanjem objekata, pa sam se na kraju opredelio za serijalizaciju cele liste.

Kada prosledim listu, prolazim kroz nju, i svaki objekt zapisem u fajl. Tako sam bar ja uradio.

Trenutno imam problem sa citanjem fajla, tj punjenjem liste iz fajla, ali cenim da cu uspeti :)


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 20.11.2010. 15:57:16 
Korisnikov avatar

Pridružio se: 09.10.2007. 16:55:15
Postovi: 4003
Lokacija: Vidzilend
Godina: Dipl.
Smer: IS
Kod:
Lista l = new Lista();
 public void sacuvaj(File file){
        try {
            FileOutputStream fos = new FileOutputStream(file);
            try {
                ObjectOutputStream oos = new ObjectOutputStream(fos);
                oos.writeObject(l);
                oos.flush();
                oos.close();
            } catch (IOException ex) {
                Logger.getLogger(PaterniDomaciView.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(PaterniDomaciView.class.getName()).log(Level.SEVERE, null, ex);
        }     
     }

dovoljno je da sejvujes objekat liste...


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 20.11.2010. 18:47:47 
Korisnikov avatar

Pridružio se: 19.06.2007. 20:50:12
Postovi: 2136
Lokacija: BG
Godina: Dipl.
Smer: IS
kod je napisao:

public ArrayList<Mesto> readFromFile(String filename) {

ObjectInputStream inputStream = null;
ArrayList<Mesto> m = new ArrayList<Mesto>();
try {
inputStream = new ObjectInputStream(new FileInputStream(filename));
Object obj = null;

while ((obj = inputStream.readObject()) != null) {
if (obj instanceof Mesto) {
m.add((Mesto) obj);
}
}
inputStream.close();
} catch (Exception e) {
//
}
return m;
}


Ne radi dobro. Vrati praznu listu. Gde sam pogrešio?

_________________
Arbeit macht frei


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 20.11.2010. 19:52:06 
Moderator
Korisnikov avatar

Pridružio se: 07.11.2007. 20:52:15
Postovi: 5191
Lokacija: У илегали...
Godina: Dipl.
Smer: IS
Probaj ovako:

Kod:
while (true)
{
       Object obj = inputStream.readObject();
       if (obj instanceof Mesto) m.add((Mesto)obj);
}


meni ovako radi.


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 20.11.2010. 20:43:17 
Korisnikov avatar

Pridružio se: 19.06.2007. 20:50:12
Postovi: 2136
Lokacija: BG
Godina: Dipl.
Smer: IS
A kako je pozivaš (tu metodu)? Gde upisuješ njenu vrednost? I kako je prikazuješ u jListi? Da li upisuješ povratnu vrednost metode u postojeću listu? Jel' možeš da okačiš celu metodu i poziv iste?

Npr, jel' radiš ovo:
kod je napisao:
listaMesta = fbm.readFromFile("sifarnik.dat");

fbm je neka instanca, nebitna za priču.

_________________
Arbeit macht frei


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 20.11.2010. 21:31:20 
Moderator
Korisnikov avatar

Pridružio se: 07.11.2007. 20:52:15
Postovi: 5191
Lokacija: У илегали...
Godina: Dipl.
Smer: IS
Ovako,
metoda mi vraca listu mesta koju ucita iz fajla, i tu listu koju mi vrati, smestim u tekucu listu mesta.

Kod:
private ObjectInputStream inMesto;
public static final String nazivFajlaMesto = "sifarnik.dat";

    public LinkedList<Mesto> ucitajListuMesta()
    {
        LinkedList<Mesto> mesto = new LinkedList<Mesto>();
        try
        {
            inMesto = new ObjectInputStream
                    (new FileInputStream(nazivFajlaMesto));

            while (true)
            {
                Mesto m = (Mesto)inMesto.readObject();
                mesto.add(m);
            }
        }
        catch (Exception e) {e.getMessage();}
        return mesto;
    }


Kod:
    public void napuniListuMesta(LinkedList<Mesto> m)
    {
        listaMesta.getListaMesta().clear();
        for (int i = 0; i < m.size(); i++) listaMesta.getListaMesta().add(m.get(i));
    }


i onda iz guija ili odakle vec, pozoves metodu

napuniListuMesta(ucitajListuMesta());

bitno je samo da u svakom trenutku imas referencu ka listiMesta i listiOsoba.
Ako nesto nije jasno, pitaj. :)


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 21.11.2010. 21:26:50 
Korisnikov avatar

Pridružio se: 19.06.2007. 20:50:12
Postovi: 2136
Lokacija: BG
Godina: Dipl.
Smer: IS
Posle pokretanja debuggera, video sam da program puca kod kastovanja: Mesto mesto = (Mesto) inputStream.readObject();. Lista koju treba da vrati metoda ostaje mi prazna.
Da li može da ima veze sa tim što ja prosleđujem listu koja je statičko polje (public static ArrayList<Mesto> listaMesta = new ArrayList<Mesto>();)? Napominjem da on lepo sačuva tu listu u fajlu.

Spoiler: show
kod koji ne radi je napisao:
public void writeToFile(String filename) {
try {
File data = new File(filename);
ObjectOutputStream ous = new ObjectOutputStream(
new FileOutputStream(data));
ous.writeObject(Klase.Mesto.listaMesta);
ous.flush();
ous.close();
} catch (Exception e) {
//
}


Edit: radi... Fora je što si ti čuvao objekat po objekat, a ja čitavu listu na keca... Pa sam uradio ovo:

Kod koji radi je napisao:
public ArrayList<Mesto> readFromFile(String filename) {

ObjectInputStream inputStream = null;
ArrayList<Mesto> lista = new ArrayList<Mesto>();
try {
inputStream = new ObjectInputStream(new FileInputStream(filename));
while (true) {
lista = (ArrayList<Mesto>) inputStream.readObject();
}
} catch (Exception e) {
System.out.println("Greska");
}
return lista;
}

_________________
Arbeit macht frei


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 22.11.2010. 12:18:23 
Korisnikov avatar

Pridružio se: 09.10.2007. 16:55:15
Postovi: 4003
Lokacija: Vidzilend
Godina: Dipl.
Smer: IS
Radi?!String filename ne treba da bude string, vec File filename! Zasto bi serijalizovao string????


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 22.11.2010. 13:16:49 
Korisnikov avatar

Pridružio se: 19.06.2007. 20:50:12
Postovi: 2136
Lokacija: BG
Godina: Dipl.
Smer: IS
Isto radi, može i String.
Ne serijalizujem string, serijalizujem listuMesta i listuOsoba.
Hvala na savetima i pomoći!

_________________
Arbeit macht frei


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 22.11.2010. 16:38:50 
Moderator
Korisnikov avatar

Pridružio se: 07.11.2007. 20:52:15
Postovi: 5191
Lokacija: У илегали...
Godina: Dipl.
Smer: IS
Borise jel mozes da postavis metodu za upisivanje u fajl?


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
PostPoslato: 22.11.2010. 16:44:10 
Korisnikov avatar

Pridružio se: 19.06.2007. 20:50:12
Postovi: 2136
Lokacija: BG
Godina: Dipl.
Smer: IS
kod za upis u fajl je napisao:

public class FileBroker{

public void writeToFile(String filename) {
try {
File data = new File(filename);
ObjectOutputStream ous = new ObjectOutputStream(
new FileOutputStream(data));
ous.writeObject(Klase.Osoba.listaOsoba);
ous.flush();
ous.close();
} catch (Exception e) {
//
}
}
}


Metoda prima String koji samo prosledi kao parametar kod new File(filename);. Klase.Osoba.listaOsoba je statička promenljiva, tj. moja lista osoba koju čuvam u klasi Osoba, u paketu Klase.

A pozivam ovu metodu kao fb.writeToFile("data/podaci.dat");, naravno sa sve instancom klase kojoj ova metoda pripada (FileBroker fb = new FileBroker();).

_________________
Arbeit macht frei


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
Prikaži postove u poslednjih:  Poređaj po  
Započni novu temu Ova tema je zaključana, ne možete da menjate postove ili da odgovarate  [ 80 Posta ]  Idi na stranicu 1, 2, 3, 4  Sledeća


Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 14 gostiju


Ne možete postavljati nove teme u ovom forumu
Ne možete odgovarati na teme u ovom forumu
Ne možete monjati vaše postove u ovom forumu
Ne možete brisati vaše postove u ovom forumu
Ne možete slati prikačene fajlove u ovom forumu

Pronađi:
Idi na:  
cron
Copyleft FONForum 2001-2014 | Powered by phpBB © phpBB Group