2011. szeptember 9., péntek

GUI alkalmazás készítése NetBeans-el

Ma a netbeans.org oldalon található Designing a Swing GUI in NetBeans IDE tutorialt csináltam végig (azaz még folyamatban van, de a végére kell jutnom).
Ebben a következő lényeges dolgokat találtam:


  • NetBeans JAVA projekt felépítése és tartalma. Minden projekt indításakor létrejön a megadott helyen a projekt könyvtárstruktúrája, ahol tárolódnak a különböző java forrásfájlok, a projekthez tartozó metaadatok (pl a projekt beállításait tartalmazó fájlok) és egy Ant script, ami vezérli a projekt fordítását és a futtatáshoz szükséges beállításokat.
    Ez a könyvtárszerkezet a NetBeansben is megtekinthető a Files ablakban. Így néz ki egy NB projekt. 
  • A projekthez hozzáadtunk egy JFrame konténert, ami gyakorlatilag az alkalmazás ablakát jelenti. az NB létrehozta a GUI osztályát tartalmazó .java fájlt és azt megnyitotta szerkesztésre. Fontos dolog még hogy a GUI létrehozásakor meg kell adni egy package nevet is, ami a procedúra végén az alapértelmezett package lesz.
    A Project struktúrában ezek a Source Packages alatt jönnek létre és ott találhatók meg.
  • A GUI Builder felülete

    Tervező terület: itt tervezhetjük meg a GUI-t. Alapértelmezésben rákerül egy szürke négyzet, ami az ablakunkat reprezentálja. Ebbe tehetjük bele a vezérlőket. A Source és a Design gombokkal tudunk váltani az interaktív felületszerkesztő és a GUI-t tartalmazó forrásállomány között. Jobbra tőle a Palette található, ami a különféle vezérlőket és a GUI építésére használt elemeket tartalmazza. Innen húzhatjuk rá a formunkra a kívánt elemet. Az elemek tulajdonságait a Properties ablakban szerkeszthetjük, illetve itt tudjuk megadni az elemek eseménykezelőit (Events).
    Fontos még megemlíteni hogy van egy Inspector nevű ablak is (a képen nem látható....) ami a felhasznált (látható és nem látható) elemeket tartalmazza fastruktúrában.
  • A GUI Builder egy csomó kódolást elvégez helyettünk. Ha átváltunk Source nézetbe akkor láthatunk bekeretezett sorokat, előtte egy + jellel. A jelre kattintva kinyílik a doboz és láthatjuk a generált kódot. Ilyen pl a form megjelenítését végző main metódus. Gyakorlatilag kapunk egy futásra kész üres formot. Ezután nincs más dolgunk mind összedobálni az alkalmazást :)
Ezután a tutorial bemutatja a GUI builder lehetőségeit. Megtanulhatjuk a különféle komponensek egyenként illetve sorozatban egymás után történő kihelyezésétől és alapvető tulajdonságainak beállítását. Az eszköz óriási segítséget ad a GUI szép megtervezéséhez, különféle segédvonalakkal, mely az igazítást és a méretezést segíti. Ezen felül a különféle illesztési módszerek beállíthatók, valamint a méretezésekhez is nagy segítséget nyújt. A komponensek kijelölése a Windowsban szokásos CTRL + klikk illetve a SHIFT + klikk technikákkal történik. Az illesztési funkciók a komponensen nyomott jobb egérklikkre előbukkanó menüben érhetők el (Same size, Align, Auto resize stb). Alapjában véve aki már dolgozott valamilyen vizuális RAD eszközzel (Delphi, Visual Basic) annak ismerősek lesznek ezek a dolgok.
A különféle tervezést segítő vonalak, jelzések, igazítás, méretezéssel kapcsolatos dolgokat külön cikkben is összegyűjtve megtalálhatjuk: GUI Builder visual feedback legend

2011. szeptember 8., csütörtök

Elkezdtem áttekinteni, alaposabban körüljárni a Java környezetet.
Leszedtem néhány dokumentációt az Internetről az osztott rendszerekkel a JAVA RMI-vel kapcsolatosan, illetve utánanéztem hogy hogyan tudok windows form jellegű alkalmazást készíteni.
Ehhez a NetBeans fejlesztői környezetet fogom használni. Az Eclipse volt az elsőszámú jelölt, de sajnos UI építő plugin nincs hozzá igazából jó. Szóval egyelőre NetBeans amit feltettem és készítettem vele egy tutorial alapján GUI-s alkalmazást.

Terveim rövidtávon:

  • Megismerni a Javát nagyvonalakban, de teljeskörű áttekintést szeretnék kapni róla. A technológiákat amiket használni fogok részletesen meg kell ismernem. 
  • Nyilván az OO elvek és a Java nyelv rutinszerű használatát mindenképp meg kell szereznem (megyeget, de nincs gyakorlatom).
  • GUI alkalmazások felépítése, működése. Netbeans megismerése.
  • JDBC technológia megismerése, egyszerű adatbáziskezelő alkalmazás készítése (pl telefonkönyv)
  • Elosztott rendszerek áttekintése, megismerése (RMI, CORBA)
  • RMI részletes megismerése, példaprogramok készítése
  • Adatbázistervezés áttekintése
  • Szoftverfejlesztési technológiák áttekintése, módszertan választás (RUP, UML)
  • Szoftver rendszer meghatározása, pontos feladatdefiniálás!!!
  • Konzulens keresése és egyeztetés vele a feladatról. 
Idáig kellene eljutnom az őszi vizsgaidőszak elejéig, azaz december első hetére. 
Itt az ideje hogy elkezdjek gondolkodni a szakdolgozatom konkrét megvalósításán.
Valójában már régebben foglalkoztat a gondolat és próbálok megfelelő témát találni. Olyat ami érdekel, olyat ami aránylag egyszerűen kivitelezhető, de mégis van valamilyen pikantériája. .
  • Mesterséges intelligencia: szóba jött, de inkább MSC-s témakörnek érzem.
  • Vizuális alkalmazásfejlesztés (Visual Basic): ilyet már csináltam, nem igazán van hozzá kedvem
  • Szoftvertechnológia, rendszerszervezés: sok elmélet kell hozzá, esszé jellegű dolgozat lehetne
  • Számítógép-hálózatok: szeretem ezt a témát, jól megtanították és meg is tanultam.
  • JAVA, .NET: programozási téma (ez jó), modern technológiák. Ez érdekel
  • Komplex szoftvertervezés, UML: professzionális téma, összetett.
Jelenleg ott tartok hogy egy elosztott háromrétegű rendszert szeretnék elkészíteni, ahol az adatbázis, az üzleti logika és a felhasználói interfész jelentené a három réteget. Munkahelyemen működik egy munkaerő menedzselő rendszer ahonnan az alapötlet jött. Készítenék egy általános munkafolyamat szabályozó rendszert, amibe bármilyen üzleti folyamat beállítható lenne. A folyamaton feladatok sorát értem, melyek esetleg feltételhez kötve (más feladatok elvégzése) lehetnek aktívak. Ezzel egy ellenőrzött, szabályozott menedzselő rendszert kapunk, ami képes vállalatok folyamatainak informatikai alkalmazással történő vezérlésére.
Az felhasználói interfészek asztali PC-ken Windows form alkalmazással, webböngészőben és mobil eszközökön (okostelefon) lennének megvalósítva.
Az egész rendszert JAVA környezetben készíteném el. A három rétegű architektúra miatt szükséges az üzleti logika és a felhasználói interfészalkalmazás közti kommunikáció pontos meghatározása, ami gyakorlatilag a TCP/IP protokoll felett működő saját alkalmazás-protokoll elkészítését jelentené. Ennek kidolgozása lenne az egyik pikantéria a rendszerben. A kliensek (PC, WEB, okostelefon) különböző technológiákkal (Java, PHP, .NET) kidolgozva ezt a protokollt használnák az alkalmazásszerverrel történő kommunikációra és adattranszferre.
Tehát lenne egy adatbázis (egyenlőre MySQL-ben gondolkodom), egy alkalmazásszerver (JAVA (EE?)) és kliensek (PHP, JAVA, .NET). Még az egészet egy nagyon egyszerű SMS szerverrel is meg lehet fűszerezni, aminek segítségével tájékoztató SMS-ek kiküldésére is sor kerülhet (netán a felhasználó felöl érkező SMS-ek alapján történő interakciók elvégzése is szóba jöhet).
Na a lényeg a háromrétegű alkalmazás elkészítése, saját protokollal.