GUI és backend együttműködésének megoldása hogyan?

Fórumok

Sziasztok!

Szeretnék segítséget kérni, iskolai projectfeladatban veszek részt, egy tárgyiesztköz nyilvántartó programot készítünk. Hárman vagyunk, a GUI, az adatbázis és a backend a feladat, az utóbbit csinálom én. Sajnos nem vagyok még jó a programozásban.
A problémám a következő lenne: A GUI-tól kapott adatokat bele szertnénk tenni egy public objektumba, amit a backend kiolvasna onna, és továbbtaná a MySQL-nek. Valami ilyesmire gondoltam:

/*
public class kozbensoTarolo {
private final String tipus,
alTipus,
megnevezes,
megjegyzes;
private final int leltariszam;

public kozbensoTarolo (String tipus, String alTipus, String megnevezes, String megjegyzes, int leltariszam){
this.tipus = tipus;
this.alTipus = alTipus;
this.megnevezes = megnevezes;
this.megjegyzes = megjegyzes;
this.leltariszam = leltariszam;
}

}
*/
Persye lehet, hogy rossz módon kezdtem, de nem szeretném elszúrni. Kérlek adjatok tanácsot, hogyan lehetne ezt jól megcsinálni.
Előre is köszönöm a segítséget.

Hozzászólások

Ezt hívják DTO-nak (Data Transfer Object). Jobban jársz, ha publikus adattagokat definiálsz bele, különben nem fogod tudni olvasni a másik rétegben.
Vagy publikus mezőket csinálsz, vagy publikus "getter"-eket, érdemes a JavaBeans stílusú property metódosokat csinálni. Pl:

private String tipus;

public String getTipus() {
return tipus;
}

public void setTipus(String tipus) {
this.tipus = tipus;
}

Persze publikus setter esetén a field-eket nem fogod tudni final-ra definiálni, de te döntsd el, hogy csak a konstruktorban adsz értéket a DTO mezőinek, vagy pedig bármikor... Attól függ, hogyan használod a DTO-kat.

Csak feliratkozom, mert érdekel a téma.

Olvass utána az MVC vagy MVP patterneknek, aztán amelyik neked érthetőbb, azt próbáld meg alkalmazni.

keresesBT.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
kozbensoTarolo cuccok1 = new kozbensoTarolo();
kozbensoTarolo cuccok2 = new kozbensoTarolo();
cuccok1.setTipus("Tipus1");
cuccok1.setAlTipus("alTipus1");
cuccok1.setLeltariszam(12345);
cuccok1.setMegnevezes("Eszkoznev");
cuccok2 = backend.tovabbit(cuccok1);
}
}
);

Hibaüzenet:
non-static method tovabbit(kozbensoTarolo) cannot be referenced from static context

Mit csináltam rosszul? Miért mondja azt, hogy static?
Plíz segítsetek!

Ez a backend:

public class backend {

public kozbensoTarolo tovabbit(kozbensoTarolo atvitel1)
{
atvitel1 = new kozbensoTarolo();
/*
TODO MySQL adatatvitel
JDBC muveletek
*/
kozbensoTarolo atvitel2 = new kozbensoTarolo();
return atvitel2;
}

}

közben megoldódott, a backendet először példányosítani kell ( /me: csendes facepalm :) )

update: Hibaüzi: Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException: Not supported yet.
(bocs a sok floodért)

Kicsit off, de jótanács: Nem érdemes magyar változó- és osztályneveket használni, angollal jobban jártok.

Köszi, ezen már én is elgondolkodtam, hogy nem lenne-e jobb angol neveket használni, de a csoporttársam, aki a GUI-t csinálja, magyar változónevekkel kezdte, és már nem akartam belerondítani. Amúgy ez egy beadandó a Duf-on, Informatikai projektvezetés és gyakorlat tárgyból, és hát... közeleg a leadási határidő, én meg totál úgy érzem, hogy nagyobb fába vágtam a fejszémet, mint kellett volna :( valahogy csak sikerül már összehozni... és köszönöm mindenkinek, aki segített, és aki ezután fog.