Compare commits

..

No commits in common. "b14d044443e7ab254305c76347e47150e2d29e64" and "6515ea54c4d64ae6df2e437db0b47dca3c1725b3" have entirely different histories.

2 changed files with 22 additions and 16 deletions

View File

@ -1,6 +1,7 @@
package PR2.HitoriSpiel.GUI; package GUI;
import PR2.HitoriSpiel.Domain.HitoriBoard; import domain.HitoriBoard;
import persistent.BoardLoader;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
@ -14,7 +15,7 @@ public class StartMenu extends JFrame {
public StartMenu() { public StartMenu() {
setTitle("Hitori - Hauptmenü"); setTitle("Hitori - Hauptmenü");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(800, 600); setSize(600, 400);
mainPanel = new JPanel(new GridBagLayout()); mainPanel = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints(); GridBagConstraints gbc = new GridBagConstraints();
@ -61,21 +62,23 @@ public class StartMenu extends JFrame {
private void selectBoard() { private void selectBoard() {
// Lade die Liste der Spielfeld-Dateien
List<String> boardFileNames = BoardLoader.loadBoardsAsList(); List<String> boardFileNames = BoardLoader.loadBoardsAsList();
System.out.println("Verfügbare Spielfelder: " + boardFileNames);
if (boardFileNames.isEmpty()) { if (boardFileNames.isEmpty()) {
JOptionPane.showMessageDialog(this, "Keine Spielfelder gefunden.", "Information", JOptionPane.INFORMATION_MESSAGE); JOptionPane.showMessageDialog(this, "Keine Spielfelder gefunden.", "Information", JOptionPane.INFORMATION_MESSAGE);
return; return;
} }
// Erstelle die JComboBox
JComboBox<String> boardSelector = new JComboBox<>(boardFileNames.toArray(new String[0])); JComboBox<String> boardSelector = new JComboBox<>(boardFileNames.toArray(new String[0]));
boardSelector.setPreferredSize(new Dimension(250, 30)); boardSelector.setPreferredSize(new Dimension(250, 30)); // Größe der ComboBox anpassen
JPanel selectionPanel = new JPanel(new BorderLayout()); JPanel selectionPanel = new JPanel(new BorderLayout());
selectionPanel.add(new JLabel("Wähle ein Spielfeld:"), BorderLayout.NORTH); selectionPanel.add(new JLabel("Wähle ein Spielfeld:"), BorderLayout.NORTH);
selectionPanel.add(boardSelector, BorderLayout.CENTER); selectionPanel.add(boardSelector, BorderLayout.CENTER);
// Zeige das Auswahlfenster
int option = JOptionPane.showConfirmDialog( int option = JOptionPane.showConfirmDialog(
this, this,
selectionPanel, selectionPanel,
@ -84,20 +87,23 @@ public class StartMenu extends JFrame {
JOptionPane.PLAIN_MESSAGE JOptionPane.PLAIN_MESSAGE
); );
// Aktion, wenn der Benutzer auf OK klickt
if (option == JOptionPane.OK_OPTION) { if (option == JOptionPane.OK_OPTION) {
String selectedFile = (String) boardSelector.getSelectedItem(); String selectedFile = (String) boardSelector.getSelectedItem();
System.out.println("Ausgewählte Datei: " + selectedFile);
if (selectedFile != null) { if (selectedFile != null) {
try { try {
String resourcePath = "/persistent/Hitori_Spielfelder/" + selectedFile;
System.out.println("Lade Datei von Pfad: " + resourcePath);
int[][] boardData = BoardLoader.loadBoard(resourcePath); InputStream inputStream = BoardLoader.class.getResourceAsStream("/persistent/Hitori_Spielfelder/" + selectedFile);
loadGameBoard(boardData); if (inputStream == null) {
throw new Exception("Ressourcendatei nicht gefunden: /persistent/Hitori_Spielfelder/" + selectedFile);
}
// Lade das ausgewählte Spielfeld
int[][] boardData = BoardLoader.loadBoard("/persistent/Hitori_Spielfelder/" + selectedFile);
loadGameBoard(boardData); // Zeige das Spielfeld an
} catch (Exception ex) { } catch (Exception ex) {
System.err.println("Fehler beim Laden der Datei: " + ex.getMessage());
JOptionPane.showMessageDialog(this, "Fehler beim Laden des Spielfelds: " + ex.getMessage(), "Fehler", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(this, "Fehler beim Laden des Spielfelds: " + ex.getMessage(), "Fehler", JOptionPane.ERROR_MESSAGE);
} }
} }

View File

@ -1,12 +1,12 @@
package PR2.HitoriSpiel.Main; package PR2.HitoriSpiel.Main;
import PR2.HitoriSpiel.GUI.StartMenu; import PR2.HitoriSpiel.GUI.HitoriApp;
import javax.swing.*;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new StartMenu()); HitoriApp app = new HitoriApp();
app.start();
} }
} }