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">
|
||||
<grid id="27dc6" binding="panel" layout-manager="BorderLayout" hgap="0" vgap="0">
|
||||
<constraints>
|
||||
<xy x="20" y="20" width="500" height="400"/>
|
||||
<xy x="20" y="20" width="501" height="400"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
@@ -12,6 +12,12 @@
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<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">
|
||||
<constraints/>
|
||||
<properties>
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
package de.oszimt.ls.aliendefence.view.menue;
|
||||
|
||||
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.model.Level;
|
||||
import de.oszimt.ls.aliendefence.model.User;
|
||||
import de.oszimt.ls.aliendefence.view.game.GameGUI;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.table.DefaultTableModel;
|
||||
@@ -17,6 +20,7 @@ public class LevelChoice {
|
||||
private JButton btnUpdateLevel;
|
||||
private JTable tblLevels;
|
||||
private JButton btnDeleteLevel;
|
||||
private JButton btnPlay;
|
||||
|
||||
private final LevelController lvlControl;
|
||||
private final LeveldesignWindow leveldesignWindow;
|
||||
@@ -27,7 +31,7 @@ public class LevelChoice {
|
||||
* @param controller
|
||||
* @param leveldesignWindow
|
||||
*/
|
||||
public LevelChoice(AlienDefenceController controller, LeveldesignWindow leveldesignWindow) {
|
||||
public LevelChoice(AlienDefenceController controller, LeveldesignWindow leveldesignWindow, User user) {
|
||||
this.lvlControl = controller.getLevelController();
|
||||
this.leveldesignWindow = leveldesignWindow;
|
||||
|
||||
@@ -51,6 +55,12 @@ public class LevelChoice {
|
||||
|
||||
tblLevels.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
|
||||
this.updateTableData();
|
||||
btnPlay.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
btnPlay_Clicked(controller, user);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private String[][] getLevelsAsTableModel() {
|
||||
@@ -85,6 +95,21 @@ public class LevelChoice {
|
||||
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() {
|
||||
return panel;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import javax.swing.border.EmptyBorder;
|
||||
import de.oszimt.ls.aliendefence.controller.AlienDefenceController;
|
||||
import de.oszimt.ls.aliendefence.controller.LevelController;
|
||||
import de.oszimt.ls.aliendefence.model.Level;
|
||||
import de.oszimt.ls.aliendefence.model.User;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class LeveldesignWindow extends JFrame {
|
||||
@@ -23,7 +24,7 @@ public class LeveldesignWindow extends JFrame {
|
||||
/**
|
||||
* Create the frame.
|
||||
*/
|
||||
public LeveldesignWindow(AlienDefenceController controller) {
|
||||
public LeveldesignWindow(AlienDefenceController controller, User user) {
|
||||
this.lvlControl = controller.getLevelController();
|
||||
|
||||
setTitle("Leveldesigner");
|
||||
@@ -35,7 +36,7 @@ public class LeveldesignWindow extends JFrame {
|
||||
this.cards = new CardLayout();
|
||||
contentPane.setLayout(cards);
|
||||
|
||||
levelChoice = new LevelChoice(controller, this);
|
||||
levelChoice = new LevelChoice(controller, this, user);
|
||||
contentPane.add(levelChoice.getPanel(), "levelChooser");
|
||||
|
||||
this.cardLevelEditor = new LevelEditor(this, controller, Level.getDefaultLevel());
|
||||
|
||||
@@ -62,7 +62,9 @@ public class MainMenu {
|
||||
testButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
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() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new LeveldesignWindow(alienDefenceController);
|
||||
new LeveldesignWindow(alienDefenceController, null);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user