Comments added to ApplicationFrame.java
This commit is contained in:
parent
ac78f83d82
commit
d30d641f03
@ -10,20 +10,61 @@ import java.awt.event.MouseEvent;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
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
|
public class ApplicationFrame implements Runnable
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* A fő ablakot reprezentáló <code>JFrame</code> példány.
|
||||||
|
*/
|
||||||
private JFrame jframe;
|
private JFrame jframe;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A térképválasztás alatt megjelenő tartalmat magában foglaló <code>JPanel</code> példány.
|
||||||
|
*/
|
||||||
private JPanel mapselectorpanel = null;
|
private JPanel mapselectorpanel = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A játékmenet alatt megjelenő képernyőt reprezentáló
|
||||||
|
* <code>Display</code> példány.
|
||||||
|
*/
|
||||||
private Display gamepanel;
|
private Display gamepanel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A térképválasztás alatt megjelenő fájllistát
|
||||||
|
* reprezentáló <code>JScrollPane</code> példány.
|
||||||
|
*/
|
||||||
private JScrollPane filescroll;
|
private JScrollPane filescroll;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A térképválasztás alatt megjelenő menükép mérete.
|
||||||
|
*/
|
||||||
private Dimension menuDimension = new Dimension(640, 395);
|
private Dimension menuDimension = new Dimension(640, 395);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A <code>Control</code> osztályban lévő <code>KeyHandler</code> osztály
|
||||||
|
* egy példánya, amely a billentyűzet figyeléséért felel.
|
||||||
|
*/
|
||||||
private KeyListener keyHandler = new Control.KeyHandler();
|
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{
|
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 <code>MouseEvent</code> esemény, ameny a kattintást
|
||||||
|
* reprezentálja
|
||||||
|
* @throws IOException Ha nem találja a bemeneti fájlokat.
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void mouseClicked(MouseEvent e) {
|
public void mouseClicked(MouseEvent e) {
|
||||||
jframe.remove(mapselectorpanel);
|
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(){
|
public void init(){
|
||||||
jframe = new JFrame();
|
jframe = new JFrame();
|
||||||
jframe.setFocusable(true);
|
jframe.setFocusable(true);
|
||||||
@ -52,6 +100,13 @@ public class ApplicationFrame implements Runnable
|
|||||||
jframe.setLocationRelativeTo(null);
|
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() {
|
public void backToMapSelection() {
|
||||||
jframe.remove(gamepanel);
|
jframe.remove(gamepanel);
|
||||||
jframe.removeKeyListener(keyHandler);
|
jframe.removeKeyListener(keyHandler);
|
||||||
@ -61,15 +116,36 @@ public class ApplicationFrame implements Runnable
|
|||||||
jframe.revalidate();
|
jframe.revalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Megjeleníti az ablak aktuális tartalmát.
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
jframe.setVisible(true);
|
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() {
|
private void initMapselector() {
|
||||||
if(mapselectorpanel != null)
|
if(mapselectorpanel != null)
|
||||||
jframe.remove(mapselectorpanel);
|
jframe.remove(mapselectorpanel);
|
||||||
mapselectorpanel = new JPanel() {
|
mapselectorpanel = new JPanel() {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Kirajzolja a fájlból betöltött menüképet.
|
||||||
|
*
|
||||||
|
* @param g egy <code>Graphics</code> objektum, amelyre
|
||||||
|
* a rajzolófüggvény meg van hívva
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected void paintComponent(Graphics g) {
|
protected void paintComponent(Graphics g) {
|
||||||
super.paintComponent(g);
|
super.paintComponent(g);
|
||||||
@ -106,6 +182,16 @@ public class ApplicationFrame implements Runnable
|
|||||||
|
|
||||||
mapselectorpanel.setLayout(new BorderLayout());
|
mapselectorpanel.setLayout(new BorderLayout());
|
||||||
mapselectorpanel.addMouseListener(new MouseAdapter() {
|
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 <code>MouseEvent</code> esemény, ameny a kattintást
|
||||||
|
* reprezentálja
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void mouseClicked(MouseEvent e) {
|
public void mouseClicked(MouseEvent e) {
|
||||||
if(e.getX() > 229 && e.getY() > 186 && e.getX() < 433 && e.getY() < 219) {
|
if(e.getX() > 229 && e.getY() > 186 && e.getX() < 433 && e.getY() < 219) {
|
||||||
@ -118,6 +204,20 @@ public class ApplicationFrame implements Runnable
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Beállítja a játékmenet paramétereit.
|
||||||
|
* Létrehoz egy új <code>Display</code> példányt, egy új
|
||||||
|
* <code>Dungeon</code> példányt, amelyeket a kapott <code>File</code>
|
||||||
|
* 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 <code>File</code>, 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 {
|
private void setGameParams(File dungeonFile) throws IOException {
|
||||||
gamepanel = new Display();
|
gamepanel = new Display();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user