Skip navigation

A főprogram

A KonyvtarPelda osztály

A főprogram a KonyvtarPelda osztályban került megvalósításra. Ez az osztály egy JFrame-ből származik, vagyis ez lesz az alkalmazásunk főablaka. Ebben az osztályban kerül példányosításra az AdatbazisKezelo osztály és a  KonyvFelvitelUrlap osztály is. Továbbá itt állítjuk be azt is, hogy a párbeszédablakaink tudják kezelni az adatbázis kezelő objektumot.

Mivel ez lesz az alkalmazásunk főablaka, ezért készítünk hozzá egy menüt is (egyelőre két menüponttal, amelyet a későbbiekben bővíteni fogunk). A "Fájl" menüben a "Kilépés" menüpont lesz egyelőre az egyetlen menüpont, a "Könyvek" menüben pedig az "Új könyv felvétele ..." menüpont lesz az egyetlen menüelem. Ez utóbbi hatására fogjuk megjeleníteni a párbeszédablakot. 

public class KonyvtarPelda extends JFrame implements ActionListener {
    
    private KonyvFelvitelUrlap dialog_konyvFelvitelUrlap;
    private AdatbazisKezelo adatkezelo;
    
    private JMenu menu_fileMenu;
    private JMenu menu_konyvekMenu;
    private JMenuItem menuitem_konyvFelvitel;
    private JMenuItem menuitem_kilep;

     ...  

}

Konstruktor - A főablak elkészítése

A főablak elemeit a konstruktorban példányosítjuk, majd megcsináljuk az elrendezést. Ezzel nagy gondunk nincs, hiszen a főablakra egyelőre nem teszünk külön semmilyen GUI elemet a menün kívül. 

Itt példányosítjuk (és paraméterezzük) az AdatbazisKezelo osztályt.

A menüt úgy készítjük el, hogy létrehozunk egy JMenuBar objektumot, amelyet hozzáadunk az osztályunkhoz (amely egy JFrame-ből származik). Ehhez adjuk hozzá a menüket (JMenu objektumok) és a menükhöz a menüelemeket (JMenuItem objektumok). A menüelemekhez - csakúgy mint a gombokhoz - egy eseményfigyelőt rendelünk, amely egy ActionEvent-et hoz létre ha rákattintunk. Az eseményeket az ebben az osztályban lévő actionPerformed() metódus kezeli le. Ha a "Kilépés" menüelemre kattintottunk, akkor kilép a program, ha pedig az "Új könyv felvétele ..." menüpontra kattintottunk, akkor pedig megnyílik a könyvfelviteli párbeszédablak.

A konstruktor végén beállítjuk az ablak méretét és pozícióját.

    public KonyvtarPelda(String title) {
        
        super(title); // az ablak felirata
        
        // létrehozzuk az objektumokat
        
        // létrehozzuk a párbeszédablakot, de nem jelenítjük meg
        this.dialog_konyvFelvitelUrlap = new KonyvFelvitelUrlap(this);
        this.dialog_konyvFelvitelUrlap.setVisible(false); // nem jelenítjük meg, csak
        
        // létrehozzuk az adatbáziskezelőt
        this.adatkezelo = new AdatbazisKezelo("localhost:3306/KONYVTAR", "root", "");
        
        // beállítjuk a párbeszédablakhoz az adatbáziskezelőt
        this.dialog_konyvFelvitelUrlap.setAdatkezelo(this.adatkezelo);


        // létrehozzuk a menüt és a menülelemekt
        JMenuBar menubar = new JMenuBar();
        this.setJMenuBar(menubar);
        
        this.menu_fileMenu = new JMenu("File");
        this.menu_konyvekMenu = new JMenu("Könyvek");
        
        this.menuitem_kilep = new JMenuItem("Kilép");
        this.menuitem_konyvFelvitel = new JMenuItem("Új könyv felvétele ...");
        
        // hozzáadjuk a menüket a menubar-hoz
        menubar.add(menu_fileMenu);
        menubar.add(menu_konyvekMenu);
        
        // hozzáadjuk a File menühöz a kilépést
        this.menu_fileMenu.add(menuitem_kilep);
        this.menu_konyvekMenu.add(menuitem_konyvFelvitel);
        
        // hozzáadunk egy eseményfigyelőt a menüelemekhez
        // ez az osztály fogja ezeket az eseményeket lekezelni
        this.menuitem_kilep.addActionListener(this);
        this.menuitem_konyvFelvitel.addActionListener(this);
        
        
        // megjelenítjük a főablakot,
        //this.pack(); // csak akkorára állítjuk a méretét, amekkora helyet elfoglal
        this.setSize(300,100);
        this.setLocation(300, 300);
        this.setVisible(true);
        
    }

Az eseménykezelés

Az eseménykezelést az actionPerformed() metódus végzi, mivel ebben az osztályban implementáljuk az ActionListener-t. Amennyiben újabb funkciókkal, gombokkal vagy menükkel bővítjük programunkat, ezt a metódust is bővíteni kell.

/**
     * Ebben a metódusban kezeljük le a menüelemekre kattintást és a gombnyomásokat
     **/
    public void actionPerformed(ActionEvent e) {
        
        // ha az KILÉPÉS menüpontra kattintottunk
        if ( e.getSource().equals(this.menuitem_kilep) ) {
            this.adatkezelo.adatbazistBezar();
            System.exit(0);
        }
        
        // ha könyvet akarunk felvinni
        if ( e.getSource().equals(this.menuitem_konyvFelvitel) ) {
            this.dialog_konyvFelvitelUrlap.elokeszit(); // kitörlöm a korábbi tartalmat
            this.dialog_konyvFelvitelUrlap.setVisible(true); // megjelenítem a párbeszédablakot
        }  
        
    }

A főprogram

A főprogram (a main() metódus ) is ebben az osztályba kerül, itt példányosítani kell ezt az osztályt, és ezzel el is indítottuk a programunkat. Megjegyezzük, hogy ki lehet bővíteni egyéb funkciókkal is ezt az ablakot, de most az a cél lebegett előttünk, hogy kis, egyszerű példával mutassuk be a Java-ban történő adatkezelést és a grafikus felület készítését.

    /**
     * A főprogram
     **/
     public static void main(String args[]) {
         KonyvtarPelda konyvtarPelda = new KonyvtarPelda("Könyvtár példa program");
        
     }

Licensed under the Creative Commons Attribution Non-commercial Share Alike License 4.0