lucasjoshua #12

Merged
lgc merged 5 commits from lucasjoshua into main 2024-12-10 11:38:37 +00:00
3 changed files with 86 additions and 39 deletions
Showing only changes of commit 0ef34e18eb - Show all commits

View File

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

View File

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