diff --git a/cicaprojekt/ApplicationFrame.java b/cicaprojekt/ApplicationFrame.java
index b3cc2d5..0741f68 100644
--- a/cicaprojekt/ApplicationFrame.java
+++ b/cicaprojekt/ApplicationFrame.java
@@ -10,20 +10,61 @@ import java.awt.event.MouseEvent;
import java.io.File;
import java.io.IOException;
+/**
+ * Az alkalmazás megjelenítéséért felelős osztály.
+ * Inicializálja az ablak egyes részeit, illetve beállítja az eseménykezelőket.
+ */
public class ApplicationFrame implements Runnable
{
+ /**
+ * A fő ablakot reprezentáló JFrame
példány.
+ */
private JFrame jframe;
+ /**
+ * A térképválasztás alatt megjelenő tartalmat magában foglaló JPanel
példány.
+ */
private JPanel mapselectorpanel = null;
+
+ /**
+ * A játékmenet alatt megjelenő képernyőt reprezentáló
+ * Display
példány.
+ */
private Display gamepanel;
+ /**
+ * A térképválasztás alatt megjelenő fájllistát
+ * reprezentáló JScrollPane
példány.
+ */
private JScrollPane filescroll;
+ /**
+ * A térképválasztás alatt megjelenő menükép mérete.
+ */
private Dimension menuDimension = new Dimension(640, 395);
+ /**
+ * A Control
osztályban lévő KeyHandler
osztály
+ * egy példánya, amely a billentyűzet figyeléséért felel.
+ */
private KeyListener keyHandler = new Control.KeyHandler();
+ /**
+ * A fájllistából való választás eseményét kezelő osztály.
+ * A kiválasztott elemre való kattintás után eltűnteti a térképlistát,
+ * betölti az elemnek megfelelő térképet, majd azt felhasználva
+ * elindítja és megjeleníti a játékot.
+ */
private class ListMouseHandler extends MouseAdapter{
+
+ /**
+ * A kiválaszott elemnek megfelelő térképet betölti,
+ * majd elindítja a játékot.
+ *
+ * @param e a MouseEvent
esemény, ameny a kattintást
+ * reprezentálja
+ * @throws IOException Ha nem találja a bemeneti fájlokat.
+ */
@Override
public void mouseClicked(MouseEvent e) {
jframe.remove(mapselectorpanel);
@@ -40,6 +81,13 @@ public class ApplicationFrame implements Runnable
}
}
+ /**
+ * Az ablak inicializálása, alapvető tulajdonságainak beállítása.
+ * Elindítja a térképválasztó inicializálását, illetve megjeleníti
+ * azt.
+ *
+ * @see #initMapselector()
+ */
public void init(){
jframe = new JFrame();
jframe.setFocusable(true);
@@ -52,6 +100,13 @@ public class ApplicationFrame implements Runnable
jframe.setLocationRelativeTo(null);
}
+ /**
+ * Játék után visszatérés a térképválasztáshoz.
+ * Eltávolítja a játék nézetet, elindítja a térképválasztó
+ * inicializálását, illetve frissíti az ablak tartalmát.
+ *
+ * @see #initMapselector()
+ */
public void backToMapSelection() {
jframe.remove(gamepanel);
jframe.removeKeyListener(keyHandler);
@@ -61,15 +116,36 @@ public class ApplicationFrame implements Runnable
jframe.revalidate();
}
+ /**
+ * Megjeleníti az ablak aktuális tartalmát.
+ */
@Override
public void run() {
jframe.setVisible(true);
}
+ /**
+ * A térképválasztó inicializálása.
+ * Amennyiben nem üres a panel, úgy kiveszi azt az ablakból.
+ * Létrehoz egy új panelt, amelybe betölti a menüképet, majd feltölti
+ * a térképválasztó listát is. Beállítja a térképválasztó lista
+ * megjelenését, majd hozzákapcsol egy egér eseménykezelőt a panelhez.
+ * Ebben lekezeli a Play gombra való kattintást, amely hatására hozzáadja
+ * és megjeleníti a térképválasztó listát a panelhez.
+ *
+ * @throws IOException Ha nem találja a bemeneti fájlokat.
+ */
private void initMapselector() {
if(mapselectorpanel != null)
jframe.remove(mapselectorpanel);
mapselectorpanel = new JPanel() {
+
+ /**
+ * Kirajzolja a fájlból betöltött menüképet.
+ *
+ * @param g egy Graphics
objektum, amelyre
+ * a rajzolófüggvény meg van hívva
+ */
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
@@ -106,6 +182,16 @@ public class ApplicationFrame implements Runnable
mapselectorpanel.setLayout(new BorderLayout());
mapselectorpanel.addMouseListener(new MouseAdapter() {
+
+ /**
+ * Az egérrel való kattintás eseményét lekezelő függévény.
+ * Amennyiben a megadott koordinátákon belül kattintanak
+ * (Play gomb), úgy hozzáadja a térképválasztó listát
+ * a panelhez, amjd frissíti a panel megjelenítését.
+ *
+ * @param e a MouseEvent
esemény, ameny a kattintást
+ * reprezentálja
+ */
@Override
public void mouseClicked(MouseEvent e) {
if(e.getX() > 229 && e.getY() > 186 && e.getX() < 433 && e.getY() < 219) {
@@ -116,8 +202,22 @@ public class ApplicationFrame implements Runnable
}
});
- }
+ }
+ /**
+ * Beállítja a játékmenet paramétereit.
+ * Létrehoz egy új Display
példányt, egy új
+ * Dungeon
példányt, amelyeket a kapott File
+ * példánnyal együtt átad a megfelelő függvényeknek, amelyek aztán
+ * elindítják a játékmenetet.
+ *
+ * @param dungeonFile az a File
, amelyet a felhasználó
+ * a térképválasztóból választott ki
+ * @throws IOException Ha nem találja a bemeneti fájlokat.
+ * @see Game#setDisplay(Display)
+ * @see Game#setDungeon(Dungeon)
+ * @see Game#startGame(File)
+ */
private void setGameParams(File dungeonFile) throws IOException {
gamepanel = new Display();