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

Kako da napunim JTable iz subtabele u Bazi (MVC Pattern) ???

[es] :: Java :: Kako da napunim JTable iz subtabele u Bazi (MVC Pattern) ???

[ Pregleda: 3579 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

jovanbugarcic
Jovan Bugarcic
Cacak

Član broj: 4861
Poruke: 3
*.231.eunet.yu.

ICQ: 46667961


Profil

icon Kako da napunim JTable iz subtabele u Bazi (MVC Pattern) ???29.11.2005. u 02:28 - pre 190 meseci
Naime sta treba da se uradi :

class Racun {

String BrojRacuna;
String NazivPartnera;
Double UkupnaVrednost;
boolean Obradjen;
boolean Storniran;
StavkaRacuna []sracun;
}

class StavkaRacuna{
Integer RB;
Integer SifraProizvoda;
Integer kolicina;
Double ProdajnaCena;
Racun rac;
}


Kako da napunim na ekranskoj formi JTable stavkama racuna (jedan racun ima vishe stavki) a pri tome treba koristiti MVC patern. Koje metode za to treba da implementiram ? Kako bi izgledao Model a kako bi trebao da izgleda DAO.
Paradisco
 
Odgovor na temu

rj444
Radomir Jakovljevic
Beograd

Član broj: 48212
Poruke: 354
*.rcub.bg.ac.yu.



Profil

icon Re: Kako da napunim JTable iz subtabele u Bazi (MVC Pattern) ???29.11.2005. u 23:17 - pre 190 meseci
Npr. ovako:
StavkaRacuna je klasa cije ces objekte kreirati nekako citanjem iz baze. A onda ces ih pakovati u neku listu (npr. java.util.ArrayList), zatim tu listu prosledis konstruktoru objekta koji predstavlja model tvoje tabele. Ove StavkaRacuna mozes dodavati i pojedinacno jedan po jedan u model.

Code:

import java.util.ArrayList;

import javax.swing.table.AbstractTableModel;

public class Model extends AbstractTableModel {
    private ArrayList datalist=new ArrayList();
    private String[] zaglavlje={"ID", "Ime i prezime"};
        .
        .
        .


Vidis da sam odmah napravio datalist=new ArrayList(); da bih izbegao NullPointerException.

Da bi tvoja klasa modela bila model moras da prosiris AbstractTableModel a onda da implementiras neke metode, a to su:

Code:

public int getRowCount();
public int getColumnCount();
public Object getValueAt(int row, int col);
public String getColumnName(int col);


Ovo su osnovne, ima ih jos puno koje mozes da implemetiras da bi tabela imala neke napredne funkcionalnosti. To pogledaj u dokumentaciji za javu 1.5.

E sad ovo nije sve. Da bi mogao nekad u tu tabelu da dodas ili iz nje izbacis jedan red mogao bi da implemetiras neke tvoje metode za dodavanje StavkaRacuna u datalist. Npr.:
Code:

public void addStavkaRacuna(StavkaRacuna s);


Dacu ti neku implementaciju koju sam ja radio cisto da vidis kako to moze. A mozda postoje i bolji i efikasniji nacini.

Code:

         .
         .
         .
    //Konstruktor
    public Model() {
        super();
    }
    //Broj redova
    public int getRowCount() { return datalist.size(); }
    //Broj kolona
    public int getColumnCount() { return zaglavlje.length; }
    //vrednos oderedjene celije
    public Object getValueAt(int row, int col) {
        Widget widget=(Widget)datalist.get(row);
        switch(col) {
            case 0: return widget.getId();
            case 1: return widget.getIme();
            default: return null;
        }
    }
    //Ime kolona
    public String getColumnName(int col) {
        return zaglavlje[col];
    }
    //Dodavanje jednog reda u model
    public void addWidget(Widget w) {
        datalist.add(w);
                 //Obavesti osluskivace o promeni u modelu da bi azurirali pogled
        fireTableDataChanged(); 
    }
    //Dohvatanje widgeta
    public Widget getWidget(int row) {
        return (WidgetPojedinacneTabele)datalist.get(row);
    }
    //Izbacivanje reda iz modela
    public Widget removeWidgetAt(int row) {
        Widget w=(Widget)datalist.remove(row);
        this.fireTableDataChanged();
        return w;
    }
    public void removeAll() {
        datalist.clear();
        fireTableDataChanged();
    }
}


E da... video si ove metode fireTableDataChanged() koje sam pozivao posle svake izmene u listi datalist. One vrse update grafickog prikaza tabele, tako da korisnik vidi
sta se desava u tabeli.

Nadam se da sam pomogao...
Pozdrav
 
Odgovor na temu

jovanbugarcic
Jovan Bugarcic
Cacak

Član broj: 4861
Poruke: 3
*.98.eunet.yu.

ICQ: 46667961


Profil

icon Re: Kako da napunim JTable iz subtabele u Bazi (MVC Pattern) ???02.12.2005. u 00:01 - pre 190 meseci
Uradio sam malo drugacije, ali hvala u svakom slucaju.
Paradisco
 
Odgovor na temu

[es] :: Java :: Kako da napunim JTable iz subtabele u Bazi (MVC Pattern) ???

[ Pregleda: 3579 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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