Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomozite mi da JList selekcija utice na rezultat u JTextArea

[es] :: Java :: Pomozite mi da JList selekcija utice na rezultat u JTextArea

[ Pregleda: 1804 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stevan314
Srbobran

Član broj: 176958
Poruke: 25
*.dynamic.stcable.net.

Sajt: industrialgod.blogspot.co..


Profil

icon Pomozite mi da JList selekcija utice na rezultat u JTextArea16.05.2012. u 13:12 - pre 145 meseci
Stvar je u sledecem.

Iz txt fajla "biblioteka.txt" treba da se upise samo naslov knjige u JList i kad korisnik odabere naslov da se iz istog fajla "biblioteka.txt" na osnovu odabira naslova knjige
u JTextArea prikaze opis odabrane knjige.

Za sad sam uradio citanje naslova u JList ali ne znam kako da se uradi prikaz opisa u JTextArea.


Evo kod onoga sto sam uradio do sad.

Code:

public class Library extends JFrame {

    private JList lista;
    private JTextArea tekst;
    DefaultListModel model;

    public Library()  {
        super("Biblioteka");

        this.setSize(300, 300);
        setLayout(new FlowLayout());
        model = new DefaultListModel();
        lista = new JList(model);
        add(lista);


        tekst = new JTextArea(20, 20);
        add(tekst);


       File  fajl = new File ("library.txt");
        BufferedReader ulaz = null;
        try {
         
            FileReader fr = new FileReader(fajl);
            ulaz = new BufferedReader(fr);
            String linija;
            try {
                while ((linija = ulaz.readLine()) != null) {
//lista.add(linija);
//System.out.println(linija);
                    String[] reci = linija.split("\t");
                    String naslovi = null;
                    for (int i = 0; i < reci.length; i++) {
                        naslovi = reci[0];

                    }
                    int pos = lista.getModel().getSize();
                    model.addElement(naslovi.toString());

                }
            } catch (IOException ex) {
                Logger.getLogger(Library.class.getName()).log(Level.SEVERE, null, ex);
            }


        } catch (FileNotFoundException ex) {
            Logger.getLogger(Library.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public static void main(String[] args) {
        Library l = new Library();
        l.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        l.setSize(300, 430);
        l.setVisible(true);
    }
}

 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
*.dynamic.sbb.rs.

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Pomozite mi da JList selekcija utice na rezultat u JTextArea16.05.2012. u 15:56 - pre 145 meseci
Za detekciju promene JList-a moras da mu dodas ListSelectionListener (da li kao anonimnu klasu ili u posebnom fajlu, zavisi od programa). Tamo u valueChanged metodi definises sta ce se desiti, tj setujes text za JTextArea.

Sto se citanja iz fajla tice, ne znam u kakvu strukturu ima tako da ne mogu da ti pomognem oko toga. Iz koda koji si dao pretpostavljam da je struktura fajla:
Code:

...
Naslov \t Opis
...

Mozda je bolje da ucitas sve iz fajla i napravis nekakve objekte a onda kada se promeni selekcija u JList samo procitas opis odatle umesto da ponovo prolazis kroz ceo fajl.
Takodje ako ovo nije vezba/domaci zadatak, razmisli o koriscenju neke baze podataka.
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

stevan314
Srbobran

Član broj: 176958
Poruke: 25
*.dynamic.stcable.net.

Sajt: industrialgod.blogspot.co..


Profil

icon Re: Pomozite mi da JList selekcija utice na rezultat u JTextArea16.05.2012. u 17:36 - pre 145 meseci
Eh da ovako izgleda tekst u txt fajlu

title1 author1 description1 publisher1
title2 author2 description2 publisher2
title3 author3 description3 publisher3
title4 author4 description4 publisher4
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
*.dynamic.sbb.rs.

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Pomozite mi da JList selekcija utice na rezultat u JTextArea16.05.2012. u 19:37 - pre 145 meseci
Napravi klasu Book, u kojoj ces imati polja za nazi, autora, opis i izdavaca. Ona ce ti sluziti da pri citanju iz txt fajla mozes za svaku liniju da pravis instancu Book klase koju ces kasnije moci da koristis u programu. Ove objekte mozes da cuvas u ArrayList<Book> ili da ekstendujes klasu i napravis neku svoju kolekciju ako ti trebaju neke dodatne metode. Ovu kolekciju posle mozes da prosledis u JListu, i da joj dodas ListSelectionListener. To je ukratko sve sto ti treba da bi zavrsio taj deo:

1. Otvoris fajl
2. Procitas liniju
3. Splitujes po \t

Ovo si za sada sve vec uradio. Preporucujem ti da prvo radis ucitavanje iz fajla pa tek onda kreiras GUI komponente (JList, JTextArea itd) da ne bi morao nepotrebno da radis update naknadno.

4. Napravis Book od tih stringova koje dobijes
Za ovo moras da imas svoju Book klasu. Posto imas vec stringove sa potrebnim podacima samo ih iskoristi za instanciranje objekta, recimo:
Code (java):

tmp = new Book(reci[0], reci[1], reci[2], reci[3]);
 

Pri kreiranju klase Book imaj u vidu da ces morati da override-ujes toString() metod, zato sto JList po defaultu koristi njega za prikazivanje u listi. Vidi kakav ces string da vracas, da li samo naslov knjige ili jos neke dodatne informacije.

5. Snimis objekat u ArrayListu
Objekat koji si napravio dodas u ArrayListu, pogledaj neko objasnjenje u dokumentaciji kako se koristi, jednostavno je, verovatno ce ti trebati samo add() metod.

6. Napravis nov JList kome prosledis kolekciju u kojoj se nalaze knjige
JList u konstruktoru prima Object[] tj. obican niz, a posto ti imas ArrayList, iskoristi toArray() metod:
Code (java):

lista = new JList(arr.toArray());
 

(gde je arr ArrayLista gde ti se nalaze knjige.

7. Dodas nov ListSelectionListener i implementiras valueChanged kako ti odgovara
Pogledaj ovaj primer kako se koristi ListSelectionListener.
U valueChanged() metodi ces da uradis nalazenje selektovanog objekta i setovanje teksta u JTextArea.
Pogledaj ovaj primer kako da dobijes selektovan objekat iz JListe. Ovaj objekat mozes da kastujes u Book objekat i onda jednostavno da dobijes opis knjige sa book.getDescrtiption() ili kakav si vec getter kreirao. Nakon toga zamenis tekstualno polje sa novim koji ima opis selektovane knjige u sebi.




xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

[es] :: Java :: Pomozite mi da JList selekcija utice na rezultat u JTextArea

[ Pregleda: 1804 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.