From 2e6b9ec81c26b8c033789af11bb79939bdbbec9f Mon Sep 17 00:00:00 2001 From: Justin Date: Mon, 23 Jun 2025 03:38:02 +0200 Subject: [PATCH] New implemented class PgnSelectionGui --- .../chess/view/PgnSelectionGui.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 schach/src/main/java/de/hs_mannheim/informatik/chess/view/PgnSelectionGui.java diff --git a/schach/src/main/java/de/hs_mannheim/informatik/chess/view/PgnSelectionGui.java b/schach/src/main/java/de/hs_mannheim/informatik/chess/view/PgnSelectionGui.java new file mode 100644 index 0000000..8bc50fe --- /dev/null +++ b/schach/src/main/java/de/hs_mannheim/informatik/chess/view/PgnSelectionGui.java @@ -0,0 +1,39 @@ +package de.hs_mannheim.informatik.chess.view; + +import java.util.List; +import java.util.function.Consumer; + +import javax.swing.BoxLayout; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JScrollPane; + +import com.github.bhlangonijr.chesslib.game.Game; + +public class PgnSelectionGui extends JFrame { + public PgnSelectionGui(List games, Consumer onGameSelected) { + setTitle("Geladene Partien"); + setSize(600, 800); + setLocationRelativeTo(null); + JPanel panel = new JPanel(); + panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); + JScrollPane scrollPane = new JScrollPane(panel); + + int index = 1; + for (Game game : games) { + String white = game.getWhitePlayer().getName(); + String black = game.getBlackPlayer().getName(); + String title = "Spiel " + index++ + ": " + white + " vs. " + black; + JButton btn = new JButton(title); + btn.addActionListener(e -> { + dispose(); + onGameSelected.accept(game); + }); + panel.add(btn); + } + add(scrollPane); + setVisible(true); + } +} +