Anpassungen/Erweiterungen an dem Spielfeld durch BoardDisplay und GameBoard

Test Button hinzugefuegt um auf Spielfeld JPanel zu wechseln
This commit is contained in:
Kaver 2024-12-04 15:38:10 +01:00
parent 15ff3034d3
commit 0ef34e18eb
3 changed files with 86 additions and 39 deletions

View File

@ -1,15 +1,54 @@
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
// Erstellt Spielfeld für Spieler1/Spieler2 import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class BoardDisplay extends JPanel { public class BoardDisplay extends JPanel {
public BoardDisplay(int gridSize, Icon buttonIcon) { public BoardDisplay(int gridSize, Icon buttonIcon) {
super(new GridLayout(gridSize, gridSize)); super(new GridLayout(gridSize + 1, gridSize + 1)); // +1 wegen extra Zeile/Splate
// Buttons zum Panel hinzufügen // Erstellung von Spielfeld
for (int i = 0; i < gridSize; i++) { for (int i = 0; i <= gridSize; i++) {
for (int j = 0; j < gridSize; j++) { for (int j = 0; j <= gridSize; j++) {
add(new JButton(buttonIcon)); if (i == 0 && j == 0) {
add(new JLabel(" "));
} else if (i == 0) {
JLabel colLabel = new JLabel(String.valueOf(j));
colLabel.setHorizontalAlignment(SwingConstants.CENTER);
colLabel.setFont(new Font("Arial", Font.BOLD, 14));
add(colLabel);
} else if (j == 0) {
JLabel rowLabel = new JLabel(String.valueOf((char) ('A' + i - 1)));
rowLabel.setHorizontalAlignment(SwingConstants.CENTER);
rowLabel.setFont(new Font("Arial", Font.BOLD, 14));
add(rowLabel);
} else {
// Spielfeld (interaktive Zellen)
JButton field = new JButton("");
field.setBackground(Color.LIGHT_GRAY);
field.setOpaque(true);
field.setBorderPainted(true);
field.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if(SwingUtilities.isRightMouseButton(e)) {
handleFieldClick(field);
} }
} }
@Override
public void mouseExited(MouseEvent e) {
// field.setBackground(Color.LIGHT_GRAY);
}
});
add(field);
}
}
}
}
private void handleFieldClick(JButton field) {
field.setBackground(Color.RED);
} }
} }

View File

@ -1,3 +1,5 @@
import javafx.scene.control.ToggleGroup;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
@ -19,22 +21,22 @@ public class GameBoard extends JPanel {
JButton backButton = new JButton(backButtonIcon); JButton backButton = new JButton(backButtonIcon);
// Eigene ModulButtons // Eigene ModulButtons
JButton leftPlayerModul1 = new JButton("Modul 1"); //TODO: Dynamische Namen durch abgleich mit Semester JToggleButton leftPlayerModul1 = new JToggleButton("Modul 1"); //TODO: Dynamische Namen durch abgleich mit Semester
JButton leftPlayerModul2 = new JButton("Modul 2"); JToggleButton leftPlayerModul2 = new JToggleButton("Modul 2");
JButton leftPlayerModul3 = new JButton("Modul 3"); JToggleButton leftPlayerModul3 = new JToggleButton("Modul 3");
JButton leftPlayerModul4 = new JButton("Modul 4"); JToggleButton leftPlayerModul4 = new JToggleButton("Modul 4");
JButton leftPlayerModul5 = new JButton("Modul 5"); JToggleButton leftPlayerModul5 = new JToggleButton("Modul 5");
JButton leftPlayerModul6 = new JButton("Modul 6"); JToggleButton leftPlayerModul6 = new JToggleButton("Modul 6");
JButton leftPlayerModul7 = new JButton("Reset"); JToggleButton leftPlayerModul7 = new JToggleButton("Reset");
// Gegnerische ModulButtons // Gegnerische ModulButtons
JButton rightPlayerModul1 = new JButton("Modul 1"); JToggleButton rightPlayerModul1 = new JToggleButton("Modul 1");
JButton rightPlayerModul2 = new JButton("Modul 2"); JToggleButton rightPlayerModul2 = new JToggleButton("Modul 2");
JButton rightPlayerModul3 = new JButton("Modul 3"); JToggleButton rightPlayerModul3 = new JToggleButton("Modul 3");
JButton rightPlayerModul4 = new JButton("Modul 4"); JToggleButton rightPlayerModul4 = new JToggleButton("Modul 4");
JButton rightPlayerModul5 = new JButton("Modul 5"); JToggleButton rightPlayerModul5 = new JToggleButton("Modul 5");
JButton rightPlayerModul6 = new JButton("Modul 6"); JToggleButton rightPlayerModul6 = new JToggleButton("Modul 6");
JButton rightPlayerModul7 = new JButton("Bereit"); JToggleButton rightPlayerModul7 = new JToggleButton("Bereit");
public void buildPanel(MainFrame frame, int semesterCounter) { public void buildPanel(MainFrame frame, int semesterCounter) {
// Hauptlayout - BorderLayout für die Anordnung der Komponenten // Hauptlayout - BorderLayout für die Anordnung der Komponenten
@ -76,21 +78,24 @@ public class GameBoard extends JPanel {
JPanel ownBoardPanel = new BoardDisplay(gridSize, gameBoardEmtpy); JPanel ownBoardPanel = new BoardDisplay(gridSize, gameBoardEmtpy);
JPanel opponentBoardPanel = new BoardDisplay(gridSize, gameBoardEmtpy); JPanel opponentBoardPanel = new BoardDisplay(gridSize, gameBoardEmtpy);
/* Alter code ohne BoardDisplay //Buttons in eine Gruppe packen damit diese beim drücken eines anderen Buttons wieder entwählt werden
// Buttons für das eigene Spielfeld hinzufügen ButtonGroup leftButtonGroup= new ButtonGroup();
for (int i = 0; i < gridSize; i++) { leftButtonGroup.add(rightPlayerModul1);
for (int j = 0; j < gridSize; j++) { leftButtonGroup.add(rightPlayerModul2);
ownBoardPanel.add(new JButton(gameBoardEmtpy)); leftButtonGroup.add(rightPlayerModul3);
} leftButtonGroup.add(rightPlayerModul4);
} leftButtonGroup.add(rightPlayerModul5);
leftButtonGroup.add(rightPlayerModul6);
leftButtonGroup.add(rightPlayerModul7);
// Buttons für das gegnerische Spielfeld hinzufügen ButtonGroup rightButtonGroup= new ButtonGroup();
for (int i = 0; i < gridSize; i++) { rightButtonGroup.add(leftPlayerModul1);
for (int j = 0; j < gridSize; j++) { rightButtonGroup.add(leftPlayerModul2);
opponentBoardPanel.add(new JButton(gameBoardEmtpy)); rightButtonGroup.add(leftPlayerModul3);
} rightButtonGroup.add(leftPlayerModul4);
} rightButtonGroup.add(leftPlayerModul5);
*/ rightButtonGroup.add(leftPlayerModul6);
rightButtonGroup.add(leftPlayerModul7);
// Panel für beide Spielfelder (nebeneinander in der Mitte) // Panel für beide Spielfelder (nebeneinander in der Mitte)
JPanel centerPanel = new JPanel(); JPanel centerPanel = new JPanel();

View File

@ -8,8 +8,8 @@ import java.awt.event.ActionListener;
public class startLocalGame extends JPanel { public class startLocalGame extends JPanel {
// Player // Player
//Player p1; Player p1;
//Player p2; Player p2;
// Funktionshilfen // Funktionshilfen
int semesterCounter = 1; // Semester Counter Label int semesterCounter = 1; // Semester Counter Label
@ -40,6 +40,7 @@ public class startLocalGame extends JPanel {
JButton rightPlayerLeftButton = new JButton("<-"); JButton rightPlayerLeftButton = new JButton("<-");
JButton rightPlayerRightButton = new JButton("->"); JButton rightPlayerRightButton = new JButton("->");
JButton startButton = new JButton("Start!"); JButton startButton = new JButton("Start!");
JButton testButton = new JButton("Test");
JTextField leftPlayerTextField = new JTextField(20); JTextField leftPlayerTextField = new JTextField(20);
JTextField rightPlayerTextField = new JTextField(20); JTextField rightPlayerTextField = new JTextField(20);
@ -71,6 +72,9 @@ public class startLocalGame extends JPanel {
semesterCounterLabel.setHorizontalAlignment(SwingConstants.CENTER); semesterCounterLabel.setHorizontalAlignment(SwingConstants.CENTER);
add(semesterCounterLabel); add(semesterCounterLabel);
testButton.setBounds(500,800,50,50);
add(testButton);
backButton.setBounds(1380, 20, 80, 80); backButton.setBounds(1380, 20, 80, 80);
add(backButton); add(backButton);
@ -150,9 +154,8 @@ public class startLocalGame extends JPanel {
updateTextFields(); updateTextFields();
} }
}); });
backButton.addActionListener(e -> frame.showPanel("MainMenu")); backButton.addActionListener(e -> frame.showPanel("MainMenu"));
testButton.addActionListener(e -> frame.showPanelSLG("GameBoard",1,p1,p2));
//startButton.addActionListener(e -> frame.showPanelSLG("GameBoard", semesterCounter,p1, p2)); // TODO ECHTE FUNKTION EINFÜGEN //startButton.addActionListener(e -> frame.showPanelSLG("GameBoard", semesterCounter,p1, p2)); // TODO ECHTE FUNKTION EINFÜGEN
startButton.addActionListener(new ActionListener() { startButton.addActionListener(new ActionListener() {
@Override @Override