LS03-02-2 | LevelChooser: Erweiterung um den Button "Spielen" mit Aufruf der SpielGUI; Übergabe des Users
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="de.oszimt.ls.aliendefence.view.menue.LevelChoice">
|
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="de.oszimt.ls.aliendefence.view.menue.LevelChoice">
|
||||||
<grid id="27dc6" binding="panel" layout-manager="BorderLayout" hgap="0" vgap="0">
|
<grid id="27dc6" binding="panel" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||||
<constraints>
|
<constraints>
|
||||||
<xy x="20" y="20" width="500" height="400"/>
|
<xy x="20" y="20" width="501" height="400"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<properties/>
|
<properties/>
|
||||||
<border type="none"/>
|
<border type="none"/>
|
||||||
@@ -12,6 +12,12 @@
|
|||||||
<properties/>
|
<properties/>
|
||||||
<border type="none"/>
|
<border type="none"/>
|
||||||
<children>
|
<children>
|
||||||
|
<component id="cdd2d" class="javax.swing.JButton" binding="btnPlay">
|
||||||
|
<constraints/>
|
||||||
|
<properties>
|
||||||
|
<text value="Spielen"/>
|
||||||
|
</properties>
|
||||||
|
</component>
|
||||||
<component id="c85bc" class="javax.swing.JButton" binding="btnNewLevel">
|
<component id="c85bc" class="javax.swing.JButton" binding="btnNewLevel">
|
||||||
<constraints/>
|
<constraints/>
|
||||||
<properties>
|
<properties>
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
package de.oszimt.ls.aliendefence.view.menue;
|
package de.oszimt.ls.aliendefence.view.menue;
|
||||||
|
|
||||||
import de.oszimt.ls.aliendefence.controller.AlienDefenceController;
|
import de.oszimt.ls.aliendefence.controller.AlienDefenceController;
|
||||||
|
import de.oszimt.ls.aliendefence.controller.GameController;
|
||||||
import de.oszimt.ls.aliendefence.controller.LevelController;
|
import de.oszimt.ls.aliendefence.controller.LevelController;
|
||||||
import de.oszimt.ls.aliendefence.model.Level;
|
import de.oszimt.ls.aliendefence.model.Level;
|
||||||
|
import de.oszimt.ls.aliendefence.model.User;
|
||||||
|
import de.oszimt.ls.aliendefence.view.game.GameGUI;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.table.DefaultTableModel;
|
import javax.swing.table.DefaultTableModel;
|
||||||
@@ -17,6 +20,7 @@ public class LevelChoice {
|
|||||||
private JButton btnUpdateLevel;
|
private JButton btnUpdateLevel;
|
||||||
private JTable tblLevels;
|
private JTable tblLevels;
|
||||||
private JButton btnDeleteLevel;
|
private JButton btnDeleteLevel;
|
||||||
|
private JButton btnPlay;
|
||||||
|
|
||||||
private final LevelController lvlControl;
|
private final LevelController lvlControl;
|
||||||
private final LeveldesignWindow leveldesignWindow;
|
private final LeveldesignWindow leveldesignWindow;
|
||||||
@@ -27,7 +31,7 @@ public class LevelChoice {
|
|||||||
* @param controller
|
* @param controller
|
||||||
* @param leveldesignWindow
|
* @param leveldesignWindow
|
||||||
*/
|
*/
|
||||||
public LevelChoice(AlienDefenceController controller, LeveldesignWindow leveldesignWindow) {
|
public LevelChoice(AlienDefenceController controller, LeveldesignWindow leveldesignWindow, User user) {
|
||||||
this.lvlControl = controller.getLevelController();
|
this.lvlControl = controller.getLevelController();
|
||||||
this.leveldesignWindow = leveldesignWindow;
|
this.leveldesignWindow = leveldesignWindow;
|
||||||
|
|
||||||
@@ -51,6 +55,12 @@ public class LevelChoice {
|
|||||||
|
|
||||||
tblLevels.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
|
tblLevels.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
|
||||||
this.updateTableData();
|
this.updateTableData();
|
||||||
|
btnPlay.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
btnPlay_Clicked(controller, user);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private String[][] getLevelsAsTableModel() {
|
private String[][] getLevelsAsTableModel() {
|
||||||
@@ -85,6 +95,21 @@ public class LevelChoice {
|
|||||||
this.updateTableData();
|
this.updateTableData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void btnPlay_Clicked(AlienDefenceController alienDefenceController, User user) {
|
||||||
|
//Level_id des selektierten Elements auslesen
|
||||||
|
int level_id = Integer
|
||||||
|
.parseInt((String) this.tblLevels.getModel().getValueAt(this.tblLevels.getSelectedRow(), 0));
|
||||||
|
Thread t = new Thread("GameThread") {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
GameController gameController = alienDefenceController.startGame(alienDefenceController.getLevelController().readLevel(level_id), user);
|
||||||
|
new GameGUI(gameController).start();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
t.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public JPanel getPanel() {
|
public JPanel getPanel() {
|
||||||
return panel;
|
return panel;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import javax.swing.border.EmptyBorder;
|
|||||||
import de.oszimt.ls.aliendefence.controller.AlienDefenceController;
|
import de.oszimt.ls.aliendefence.controller.AlienDefenceController;
|
||||||
import de.oszimt.ls.aliendefence.controller.LevelController;
|
import de.oszimt.ls.aliendefence.controller.LevelController;
|
||||||
import de.oszimt.ls.aliendefence.model.Level;
|
import de.oszimt.ls.aliendefence.model.Level;
|
||||||
|
import de.oszimt.ls.aliendefence.model.User;
|
||||||
|
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
public class LeveldesignWindow extends JFrame {
|
public class LeveldesignWindow extends JFrame {
|
||||||
@@ -23,7 +24,7 @@ public class LeveldesignWindow extends JFrame {
|
|||||||
/**
|
/**
|
||||||
* Create the frame.
|
* Create the frame.
|
||||||
*/
|
*/
|
||||||
public LeveldesignWindow(AlienDefenceController controller) {
|
public LeveldesignWindow(AlienDefenceController controller, User user) {
|
||||||
this.lvlControl = controller.getLevelController();
|
this.lvlControl = controller.getLevelController();
|
||||||
|
|
||||||
setTitle("Leveldesigner");
|
setTitle("Leveldesigner");
|
||||||
@@ -35,7 +36,7 @@ public class LeveldesignWindow extends JFrame {
|
|||||||
this.cards = new CardLayout();
|
this.cards = new CardLayout();
|
||||||
contentPane.setLayout(cards);
|
contentPane.setLayout(cards);
|
||||||
|
|
||||||
levelChoice = new LevelChoice(controller, this);
|
levelChoice = new LevelChoice(controller, this, user);
|
||||||
contentPane.add(levelChoice.getPanel(), "levelChooser");
|
contentPane.add(levelChoice.getPanel(), "levelChooser");
|
||||||
|
|
||||||
this.cardLevelEditor = new LevelEditor(this, controller, Level.getDefaultLevel());
|
this.cardLevelEditor = new LevelEditor(this, controller, Level.getDefaultLevel());
|
||||||
|
|||||||
@@ -62,7 +62,9 @@ public class MainMenu {
|
|||||||
testButton.addActionListener(new ActionListener() {
|
testButton.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
new LevelChoice(alienDefenceController, new LeveldesignWindow(alienDefenceController));
|
// Erstellt Modell von aktuellen Nutzer
|
||||||
|
User user = new User(1, "test", "pass");
|
||||||
|
new LeveldesignWindow(alienDefenceController, user);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -78,7 +80,7 @@ public class MainMenu {
|
|||||||
levelEditorButton.addActionListener(new ActionListener() {
|
levelEditorButton.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
new LeveldesignWindow(alienDefenceController);
|
new LeveldesignWindow(alienDefenceController, null);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user