From 820694917aad5b02c2c83146cef0cb8be645c576 Mon Sep 17 00:00:00 2001 From: Sebastian Kacza Date: Mon, 11 Jan 2021 11:48:20 +0100 Subject: [PATCH 01/11] =?UTF-8?q?Textur=20GUI=20Kommentiert=20und=20Lavel?= =?UTF-8?q?=20Anzeige=20zuzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/gui/texturenauswaehlen_GUI.java | 43 +++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/src/de/jaujau/gui/texturenauswaehlen_GUI.java b/src/de/jaujau/gui/texturenauswaehlen_GUI.java index ee83278..0ab0070 100644 --- a/src/de/jaujau/gui/texturenauswaehlen_GUI.java +++ b/src/de/jaujau/gui/texturenauswaehlen_GUI.java @@ -1,10 +1,9 @@ package de.jaujau.gui; -import java.awt.BorderLayout; + import java.awt.Font; import java.awt.Image; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; + import javax.swing.ImageIcon; import javax.swing.JButton; @@ -20,16 +19,23 @@ import javax.swing.JFileChooser; /** * Klasse texturenauswaehlen_GUI + * @author Sebastian Kacza + * Diese Klasse erstelt ein Fenster für die Texturenpaket auswahl */ public class texturenauswaehlen_GUI extends JFrame{ private static final long serialVersionUID = 1L; private JPanel contentPane; private Texturenpakete pakete; - private JComboBox comboBox; + private JComboBox comboBox; private JLabel vorschaubild; private JButton speichern, hinzufuegen, schliessen; + + /** + * Konstruktor fpr das Fenster + * @param texturenpakete + */ public texturenauswaehlen_GUI (Texturenpakete texturenpakete) { pakete = texturenpakete; erstelleFenster(); @@ -37,6 +43,9 @@ public class texturenauswaehlen_GUI extends JFrame{ } + /** + * Erstelt alle komponenten des Fensters + */ private void erstelleFenster() { //Fenster größen fetslegen setAlwaysOnTop(true); @@ -81,13 +90,19 @@ public class texturenauswaehlen_GUI extends JFrame{ //Auswahl Box - comboBox = new JComboBox(); + comboBox = new JComboBox(); comboBox.setBounds(117, 69, 351, 25); contentPane.add(comboBox); aktualisiereInhalt(); } + + + /** + * Öffent einen auswahl dialog zu Öfnnen einer Datei + * Beo klick auf OK wird das Paket hinzugefügt + */ private void paketHinzufuegeb() { //Quelle: https://www.java-tutorial.org/jfilechooser.html @@ -101,31 +116,43 @@ public class texturenauswaehlen_GUI extends JFrame{ pakete.addPaket(chooser.getSelectedFile().toString()); aktualisiereInhalt(); } - } + /** + * Schießt das Auswahlfenster + */ private void schliessen() { this.setVisible(false); } + + /** + * Speichert die Auswahl des akutellen Paketes + */ private void speichern() { pakete.setAktivesPaket(comboBox.getSelectedIndex()); aktualisiereBild(); - } + + /** + * Aktualaiset die Inhalte der ComboBox + */ private void aktualisiereInhalt() { comboBox.removeAllItems(); for(int i = 0; i < pakete.getAnzahlPakete(); i++) { - comboBox.addItem(pakete.getName(i)); + comboBox.addItem(pakete.getName(i) + " [Level " + pakete.getLevel(i) + "]"); } comboBox.setSelectedIndex(pakete.getAktivesPaket()); aktualisiereBild(); } + /** + * Aktualisiert das Vorschaubild + */ private void aktualisiereBild() { vorschaubild.setIcon(new ImageIcon(pakete.getTextur(32).getScaledInstance(150, 210, Image.SCALE_SMOOTH))); } From 31325b2fabfd5b1c2779d10ae085c53b1c92bcda Mon Sep 17 00:00:00 2001 From: Sebastian Kacza Date: Mon, 11 Jan 2021 11:48:48 +0100 Subject: [PATCH 02/11] =?UTF-8?q?Funktion=20zum=20Pr=C3=BCfen=20des=20Spie?= =?UTF-8?q?lerlevels=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/daten/Texturenpakete.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/de/jaujau/daten/Texturenpakete.java b/src/de/jaujau/daten/Texturenpakete.java index d9a6472..6556c25 100644 --- a/src/de/jaujau/daten/Texturenpakete.java +++ b/src/de/jaujau/daten/Texturenpakete.java @@ -18,7 +18,7 @@ public class Texturenpakete { TexturenpaketListe = new ArrayList(); //Hinzufügen eines Internen Texturenpaketes - TexturenpaketListe.add(new TexturenpaketIntern("/img/texturen/standart", "JauJau Standart Texturen Französisch", 0)); + TexturenpaketListe.add(new TexturenpaketIntern("/img/texturen/standart", "JauJau Französisch", 0)); //Internes Texturenpaket als Aktiv festlegen setAktivesPaket(0); @@ -118,5 +118,17 @@ public class Texturenpakete { } return Texturen[32]; } + + + /** + * Prüft ob mit dem Aktuellen level das akteulle Texturenpaket genutzet werden kann + * Wenn das nicht zutrifft wird das erste Standart Paket genutzt + * @param Level des aktuellen Spielers + */ + public void pruefeLevel(int Level) { + if(TexturenpaketListe.get(AktivesPaket).getLevel() > Level) { + setAktivesPaket(0); + } + } } From fc42ab2238c90791c8a91916ba82551c122c171a Mon Sep 17 00:00:00 2001 From: Sebastian Kacza Date: Mon, 11 Jan 2021 14:21:35 +0100 Subject: [PATCH 03/11] Debug Ausgaben ein/ausschaltbar gemacht --- src/de/jaujau/daten/Kartensatz.java | 4 +++- src/de/jaujau/daten/Texturenpaket.java | 20 ++++++++++--------- src/de/jaujau/daten/Texturenpakete.java | 7 +++++-- src/de/jaujau/gui/texturenauswaehlen_GUI.java | 7 ++++--- 4 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/de/jaujau/daten/Kartensatz.java b/src/de/jaujau/daten/Kartensatz.java index 6c9c066..9fb0eec 100644 --- a/src/de/jaujau/daten/Kartensatz.java +++ b/src/de/jaujau/daten/Kartensatz.java @@ -10,6 +10,7 @@ import java.util.Random; public class Kartensatz { private Karte kartensatz[]; private int letztekarte; + private boolean debug; /** * Konstruktor für den Kartensatz @@ -19,6 +20,7 @@ public class Kartensatz { */ public Kartensatz() { + debug = true; kartensatz = new Karte[32]; //Standart Skat Kartensatz erstellen @@ -116,7 +118,7 @@ public class Kartensatz { } } else { - System.out.println("Keine Karten zum ziehen verfügbar!"); + if(debug)System.out.println("Keine Karten zum ziehen verfügbar!"); return false; } return false; diff --git a/src/de/jaujau/daten/Texturenpaket.java b/src/de/jaujau/daten/Texturenpaket.java index 38347f3..4272cb9 100755 --- a/src/de/jaujau/daten/Texturenpaket.java +++ b/src/de/jaujau/daten/Texturenpaket.java @@ -42,6 +42,7 @@ public class Texturenpaket { protected String name; //Protektet weil die abgeleitet Klasse TexturenpaketIntern auf die Werte zugreifen können muss protected int level; private final String pfad; + private boolean debug; /** @@ -49,6 +50,7 @@ public class Texturenpaket { * @param Pfad zu der Zip-Datei des Texturenpaketes */ public Texturenpaket(String Pfad) { + debug = true; name = "Nicht geladen"; level = 0; pfad = Pfad; @@ -60,7 +62,7 @@ public class Texturenpaket { * @return Paket vollständig geladen, true/false */ public boolean ladePacket() { - System.out.println("TEXTURENPAKET: Lade Paket"); + if(debug)System.out.println("TEXTURENPAKET: Lade Paket"); if(testePaket()) { //Paket ist OK @@ -82,12 +84,12 @@ public class Texturenpaket { //Name Auslesen if(Spalte[0].equals("name")) { name = Spalte[1]; - System.out.println("TEXTURENPAKET: Name: " + name); + if(debug)System.out.println("TEXTURENPAKET: Name: " + name); } //Level Auslesen if(Spalte[0].equals("level")) { level = Integer.parseInt(Spalte[1]); - System.out.println("TEXTURENPAKET: Level: " + level); + if(debug)System.out.println("TEXTURENPAKET: Level: " + level); } } @@ -166,7 +168,7 @@ public class Texturenpaket { * @return Paket vollständig, true/false */ private boolean testePaket() { - System.out.println("TEXTURENPAKET: Paket auf Fehler untersuchen:"); + if(debug)System.out.println("TEXTURENPAKET: Paket auf Fehler untersuchen:"); //Testen ob Zip-Datei vorhanden und lesabar ist File zipDatei = new File(pfad); if(zipDatei.exists() || zipDatei.canRead()) { @@ -184,7 +186,7 @@ public class Texturenpaket { while(scanner.hasNext()) { //Prüfen ob Konfigurations Datei die Einträge "name" und "level" enthält String Zeile = scanner.nextLine(); - System.out.println("TEXTURENPAKET: Konfigzeile:" + Zeile); + if(debug)System.out.println("TEXTURENPAKET: Konfigzeile:" + Zeile); if(Zeile.contains("name:")) { PaketName = true; } @@ -194,7 +196,7 @@ public class Texturenpaket { } scanner.close(); if(!PaketName || !PaketLevel) { - System.out.println("TEXTURENPAKET: Paket Konfiguration fehlerhaft"); + if(debug)System.out.println("TEXTURENPAKET: Paket Konfiguration fehlerhaft"); paketDatei.close(); return false; } @@ -205,10 +207,10 @@ public class Texturenpaket { InputStream eingabeStromTextur = paketDatei.getInputStream(zipInhaltTextur); Image bild = ImageIO.read(eingabeStromTextur); if(bild == null) { - System.out.println("TEXTURENPAKET: Datei: " + i + ".png nicht gefunden"); + if(debug)System.out.println("TEXTURENPAKET: Datei: " + i + ".png nicht gefunden"); return false; } - System.out.println("TEXTURENPAKET: Datei: " + i + ".png OK!"); + if(debug)System.out.println("TEXTURENPAKET: Datei: " + i + ".png OK!"); } paketDatei.close(); @@ -229,7 +231,7 @@ public class Texturenpaket { } //Alles OK - System.out.println("TEXTURENPAKET: Texturen Paket ist OK"); + if(debug)System.out.println("TEXTURENPAKET: Texturen Paket ist OK"); return true; } } diff --git a/src/de/jaujau/daten/Texturenpakete.java b/src/de/jaujau/daten/Texturenpakete.java index 6556c25..cbb13ee 100644 --- a/src/de/jaujau/daten/Texturenpakete.java +++ b/src/de/jaujau/daten/Texturenpakete.java @@ -12,9 +12,12 @@ public class Texturenpakete { private ArrayList TexturenpaketListe; private BufferedImage Texturen[]; private int AktivesPaket; + private boolean debug; public Texturenpakete(){ + debug = true; + TexturenpaketListe = new ArrayList(); //Hinzufügen eines Internen Texturenpaketes @@ -80,7 +83,7 @@ public class Texturenpakete { if((PaketNr >= 0) && (PaketNr < TexturenpaketListe.size())) { AktivesPaket = PaketNr; Texturen = TexturenpaketListe.get(PaketNr).getTexturen(); - System.out.println("TEXTURENPAKETE: Paket (" + PaketNr + ") '" + TexturenpaketListe.get(PaketNr).getName() + "' aktiv gesetzt!"); + if(debug)System.out.println("TEXTURENPAKETE: Paket (" + PaketNr + ") '" + TexturenpaketListe.get(PaketNr).getName() + "' aktiv gesetzt!"); return true; } return false; @@ -98,7 +101,7 @@ public class Texturenpakete { Texturenpaket NeuesPaket = new Texturenpaket(Pfad); if(NeuesPaket.ladePacket()) { TexturenpaketListe.add(NeuesPaket); - System.out.println("TEXTURENPAKETE: Paket '" + NeuesPaket.getName() + "' hinzugfügt!"); + if(debug)System.out.println("TEXTURENPAKETE: Paket '" + NeuesPaket.getName() + "' hinzugfügt!"); return true; } diff --git a/src/de/jaujau/gui/texturenauswaehlen_GUI.java b/src/de/jaujau/gui/texturenauswaehlen_GUI.java index 0ab0070..a005893 100644 --- a/src/de/jaujau/gui/texturenauswaehlen_GUI.java +++ b/src/de/jaujau/gui/texturenauswaehlen_GUI.java @@ -98,10 +98,9 @@ public class texturenauswaehlen_GUI extends JFrame{ } - /** * Öffent einen auswahl dialog zu Öfnnen einer Datei - * Beo klick auf OK wird das Paket hinzugefügt + * Bei klick auf OK wird das Paket hinzugefügt */ private void paketHinzufuegeb() { //Quelle: https://www.java-tutorial.org/jfilechooser.html @@ -127,11 +126,13 @@ public class texturenauswaehlen_GUI extends JFrame{ } - /** * Speichert die Auswahl des akutellen Paketes */ private void speichern() { +// if(spielerlevel >= pakete.getLevel(comboBox.getSelectedIndex())) { +// +// } pakete.setAktivesPaket(comboBox.getSelectedIndex()); aktualisiereBild(); } From d590449289200398c41c07169c92dd0c29ad1554 Mon Sep 17 00:00:00 2001 From: mokoe Date: Mon, 11 Jan 2021 14:28:14 +0100 Subject: [PATCH 04/11] Debug prints durch debug boolean kontrolliert --- src/de/jaujau/spiellogik/Computer_gegner.java | 37 +++++++--- src/de/jaujau/spiellogik/Spielzug.java | 73 ++++++------------- 2 files changed, 49 insertions(+), 61 deletions(-) diff --git a/src/de/jaujau/spiellogik/Computer_gegner.java b/src/de/jaujau/spiellogik/Computer_gegner.java index 98d033c..ba56817 100644 --- a/src/de/jaujau/spiellogik/Computer_gegner.java +++ b/src/de/jaujau/spiellogik/Computer_gegner.java @@ -30,6 +30,7 @@ public class Computer_gegner { private Kartensatz kartensatz; private boolean siebenInHand; private boolean achtInHand; + private boolean debug = false; // // Constructors // @@ -103,7 +104,9 @@ public class Computer_gegner { Farbe farbeHK = kartensatz.getKarte(hand.get(i)).getFARBE(); Wert wertHK = kartensatz.getKarte(hand.get(i)).getWERT(); if((farbeHK == letztekartefarbe && wertHK == Wert.ACHT) || (wertHK == letztekartewert && wertHK == Wert.ACHT)) { - System.out.println("COMPUTER: Ausnahme 1"); + if (debug) { + System.out.println("COMPUTER: Ausnahme 1"); + } return hand.get(i); } } @@ -116,7 +119,9 @@ public class Computer_gegner { Farbe farbeHK = kartensatz.getKarte(hand.get(i)).getFARBE(); Wert wertHK = kartensatz.getKarte(hand.get(i)).getWERT(); if((farbeHK == letztekartefarbe && wertHK == Wert.SIEBEN) || (wertHK == letztekartewert && wertHK == Wert.SIEBEN)) { - System.out.println("COMPUTER: Ausnahme 2"); + if (debug) { + System.out.println("COMPUTER: Ausnahme 2"); + } return hand.get(i); } } @@ -128,39 +133,53 @@ public class Computer_gegner { //Wählt aus, welche Karte gelegt wird if ((aussetzen || ziehen) && wertInHand) { //Muss der Computer aussetzen oder ziehen, versucht er eine passende Konterkarte zu legen rueckgabeindex = wertLegen(letztekartewert); - System.out.println("COMPUTER: Fall 1"); + if (debug) { + System.out.println("COMPUTER: Fall 1"); + } } else if((wertInHand || farbeInHand) && !aussetzen && !ziehen) { if (hand.size() > 3) { //Hat der Computer viele Karten in der Hand versucht er passende Farben zu legen, bei weniger Karten passende Werte if(farbeInHand && !aussetzen && !ziehen) { //Hat der Computer die Farbe auf der Hand, versucht er diese zu legen rueckgabeindex = farbeLegen(letztekartefarbe); - System.out.println("COMPUTER: Fall 2"); + if (debug) { + System.out.println("COMPUTER: Fall 2"); + } } else if(wertInHand && !aussetzen && !ziehen) { //Hat der Computer nicht die passende Farbe, aber einen passenden Wert, legt er diesen rueckgabeindex = wertLegen(letztekartewert); - System.out.println("COMPUTER: Fall 3"); + if (debug) { + System.out.println("COMPUTER: Fall 3"); + } } } else { if(wertInHand && !aussetzen && !ziehen) { //Hat der Computer die Wert auf der Hand, versucht er diese zu legen rueckgabeindex = wertLegen(letztekartewert); - System.out.println("COMPUTER: Fall 4"); + if (debug) { + System.out.println("COMPUTER: Fall 4"); + } } else if(farbeInHand && !aussetzen && !ziehen) { //Hat der Computer nicht den passenden Wert, aber eine passende Farbe, legt er diese rueckgabeindex = farbeLegen(letztekartefarbe); - System.out.println("COMPUTER: Fall 5"); + if (debug) { + System.out.println("COMPUTER: Fall 5"); + } } } } else if(bubeInHand && !aussetzen && !ziehen) { //Hat der Computer weder die passende Farbe, noch den passenden Wert auf der Hand, aber einen Wünscher, legt er diesen rueckgabeindex = wertLegen(Wert.BUBE); - System.out.println("COMPUTER: Fall 6"); + if (debug) { + System.out.println("COMPUTER: Fall 6"); + } } else if(aussetzen && !wertInHand) { //Muss der Computer aussetzen und kann nicht reagieren, gibt er eine -2 zurück rueckgabeindex = -2; - System.out.println("COMPUTER: Fall 7"); + if (debug) { + System.out.println("COMPUTER: Fall 7"); + } } diff --git a/src/de/jaujau/spiellogik/Spielzug.java b/src/de/jaujau/spiellogik/Spielzug.java index 6371778..5050543 100644 --- a/src/de/jaujau/spiellogik/Spielzug.java +++ b/src/de/jaujau/spiellogik/Spielzug.java @@ -21,6 +21,7 @@ public class Spielzug { // private Kartensatz kartensatz; + private boolean debug = true; // // Constructors @@ -46,28 +47,40 @@ public class Spielzug { Wert kartenwert = kartensatz.getKarte(kartenindex).getWERT(); Wert letztekartewert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); Farbe letztekartefarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE(); - System.out.println("SPIELZUG: Versucht Karte für Funktion: " + kartenindex); - System.out.println("SPIELZUG: Letzte Karte für Funktion: " + letztekartewert + " " + letztekartefarbe); + if (debug) { + System.out.println("SPIELZUG: Versucht Karte für Funktion: " + kartenindex); + System.out.println("SPIELZUG: Letzte Karte für Funktion: " + letztekartewert + " " + letztekartefarbe); + } if(aussetzen && kartenwert == Wert.ACHT) { - System.out.println("SPIELZUG: Bedingung 1"); + if (debug) { + System.out.println("SPIELZUG: Bedingung 1"); + } return true; } else if(aussetzen && !(kartenwert == Wert.ACHT)) { - System.out.println("SPIELZUG: Bedingung 2"); + if (debug) { + System.out.println("SPIELZUG: Bedingung 2"); + } return false; } else if (ziehen && kartenwert == Wert.SIEBEN) { - System.out.println("SPIELZUG: Bedingung 3"); + if (debug) { + System.out.println("SPIELZUG: Bedingung 3"); + } return true; } else if (!aussetzen && !ziehen && ((kartenwert == letztekartewert || kartenfarbe == letztekartefarbe) || kartenwert == Wert.BUBE)) { - System.out.println("SPIELZUG: Bedingung 4"); - System.out.println("SPIELZUG: Aussetzen: " + aussetzen + " ziehen:" + ziehen); + if (debug) { + System.out.println("SPIELZUG: Bedingung 4"); + System.out.println("SPIELZUG: Aussetzen: " + aussetzen + " ziehen:" + ziehen); + } return true; } else { - System.out.println("SPIELZUG: Bedingung 5"); + if (debug) { + System.out.println("SPIELZUG: Bedingung 5"); + } return false; } } @@ -90,48 +103,4 @@ public class Spielzug { } return gefunden; } - //// - - - // - // Methods - // - - - // - // Accessor methods - // - - // - // Other methods - // - - /** - * @param spieler - * @param kartensatz - */ - public static void legen(Spielerdaten spieler, Kartensatz kartensatz) - { - } - - - /** - * @param spieler - * @param kartensatz - */ - public static void aussetzen(Spielerdaten spieler, Kartensatz kartensatz) - { - } - - - /** - * @param spieler - * @param kartensatz - * @param anzahl - */ - public static void ziehen(Spielerdaten spieler, Kartensatz kartensatz, int anzahl) - { - } - - } From 75d3cae4d3de0c300696f7e8675f3551786c4b02 Mon Sep 17 00:00:00 2001 From: mokoe Date: Mon, 11 Jan 2021 14:29:00 +0100 Subject: [PATCH 05/11] Debug ausgabe jetzt ausschaltbar --- src/de/jaujau/spiellogik/Computer_gegner.java | 2 +- src/de/jaujau/spiellogik/Spielzug.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/de/jaujau/spiellogik/Computer_gegner.java b/src/de/jaujau/spiellogik/Computer_gegner.java index ba56817..cf8848d 100644 --- a/src/de/jaujau/spiellogik/Computer_gegner.java +++ b/src/de/jaujau/spiellogik/Computer_gegner.java @@ -130,7 +130,7 @@ public class Computer_gegner { - //Wählt aus, welche Karte gelegt wird + //Wählt aus, welche Karte gelegt wird if ((aussetzen || ziehen) && wertInHand) { //Muss der Computer aussetzen oder ziehen, versucht er eine passende Konterkarte zu legen rueckgabeindex = wertLegen(letztekartewert); if (debug) { diff --git a/src/de/jaujau/spiellogik/Spielzug.java b/src/de/jaujau/spiellogik/Spielzug.java index 5050543..e19a1f6 100644 --- a/src/de/jaujau/spiellogik/Spielzug.java +++ b/src/de/jaujau/spiellogik/Spielzug.java @@ -23,7 +23,7 @@ public class Spielzug { private Kartensatz kartensatz; private boolean debug = true; - // + // // Constructors // public Spielzug (Kartensatz karten) { From 4708fb0e1f622d714d284b242da3db3f389a0eb3 Mon Sep 17 00:00:00 2001 From: ekresse Date: Mon, 11 Jan 2021 14:51:13 +0100 Subject: [PATCH 06/11] GUI Update --- src/de/jaujau/gui/Dashboard_GUI.java | 26 ++++++++++++++++++++------ src/de/jaujau/gui/GUI.java | 1 - 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index 45b1719..c646457 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -40,7 +40,7 @@ public class Dashboard_GUI extends JPanel{ Spielerverwaltung spielerverwaltung = new Spielerverwaltung(); private final JPanel panel = new JPanel(); private final JPanel panel_1 = new JPanel(); - private JComboBox comboBox = new JComboBox(); + private JComboBox spielername = new JComboBox(); private final JPanel panel_2 = new JPanel(); private final JLabel lblNewLabel_1 = new JLabel("Entwickler: Sebastian, Moritz, Fabian, Aladin, Elmar"); private final JPanel spielfeld = new JPanel(); @@ -69,6 +69,7 @@ public class Dashboard_GUI extends JPanel{ private final JLabel label_final = new JLabel("Spiel beendet"); private final JScrollPane gegnerkartenpane = new JScrollPane(); private final JPanel gegnerkarten = new JPanel(); + private final JButton getname = new JButton("setzen"); //Moving Image @@ -232,9 +233,16 @@ public class Dashboard_GUI extends JPanel{ JLabel lblNewLabel = new JLabel("Spielername:"); panel.add(lblNewLabel); - comboBox.setMinimumSize(new Dimension(60, 22)); - comboBox.setEditable(true); - panel.add(comboBox); + spielername.setMinimumSize(new Dimension(60, 22)); + spielername.setEditable(true); + panel.add(spielername); + panel.add(getname); + getname.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + getspielername(); + } + }); start.add(panel_1, BorderLayout.CENTER); start.add(panel_2, BorderLayout.SOUTH); @@ -284,9 +292,9 @@ public class Dashboard_GUI extends JPanel{ public void renderStart(){ - comboBox.removeAllItems(); + spielername.removeAllItems(); for(int i = 0; i Date: Mon, 11 Jan 2021 14:54:43 +0100 Subject: [PATCH 07/11] =?UTF-8?q?Level=20Anzeige=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/gui/Dashboard_GUI.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index c646457..bdd4710 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -70,6 +70,9 @@ public class Dashboard_GUI extends JPanel{ private final JScrollPane gegnerkartenpane = new JScrollPane(); private final JPanel gegnerkarten = new JPanel(); private final JButton getname = new JButton("setzen"); + private final JPanel panel_3 = new JPanel(); + private final JLabel level_beschreibung = new JLabel("Aktuelles Level:"); + private final JLabel level_count = new JLabel("0"); //Moving Image @@ -244,6 +247,18 @@ public class Dashboard_GUI extends JPanel{ } }); start.add(panel_1, BorderLayout.CENTER); + panel_1.setLayout(new BorderLayout(0, 0)); + panel_3.setPreferredSize(new Dimension(100, 50)); + + panel_1.add(panel_3, BorderLayout.NORTH); + level_beschreibung.setHorizontalTextPosition(SwingConstants.CENTER); + level_beschreibung.setHorizontalAlignment(SwingConstants.CENTER); + level_beschreibung.setFont(new Font("Tahoma", Font.PLAIN, 22)); + + panel_3.add(level_beschreibung); + level_count.setFont(new Font("Tahoma", Font.PLAIN, 22)); + + panel_3.add(level_count); start.add(panel_2, BorderLayout.SOUTH); From 93e62e1b0116a7ba8ec98a52cfd9e3ff6bb0e58e Mon Sep 17 00:00:00 2001 From: ekresse Date: Mon, 11 Jan 2021 15:08:21 +0100 Subject: [PATCH 08/11] texturenauswahl added --- src/de/jaujau/gui/Dashboard_GUI.java | 1 + src/de/jaujau/gui/GUI.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index bdd4710..7accde5 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -277,6 +277,7 @@ public class Dashboard_GUI extends JPanel{ public void showgame(Spiel Spiel){ //Neues Spiel wird übergeben aktuellesSpiel = Spiel; + texturenpakete.pruefeLevel(spielerverwaltung.getLevel()); System.out.println("DASHBOARD: Game darstellen"); cl.show(panelCont, "2"); showwunsch(false); diff --git a/src/de/jaujau/gui/GUI.java b/src/de/jaujau/gui/GUI.java index c8d5035..19c4e0f 100644 --- a/src/de/jaujau/gui/GUI.java +++ b/src/de/jaujau/gui/GUI.java @@ -193,7 +193,8 @@ public class GUI extends JFrame{ texturenlabel.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { - texturenauswaehlen_GUI texturenauswahl = new texturenauswaehlen_GUI(texturenpakete); + texturenauswaehlen_GUI texturenauswahl = new texturenauswaehlen_GUI(texturenpakete, speicherung); + System.out.println("GUI: Start geöffnet"); texturenauswahl.setVisible(true); } }); From 8d4aa295666f4630aebecabb93b4d646c7e4a777 Mon Sep 17 00:00:00 2001 From: Sebastian Kacza Date: Mon, 11 Jan 2021 15:09:23 +0100 Subject: [PATCH 09/11] =?UTF-8?q?Spieler=20Level=20pr=C3=BCfung=20bei=20Te?= =?UTF-8?q?xturenauswahl=20vorbereitet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/gui/texturenauswaehlen_GUI.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/de/jaujau/gui/texturenauswaehlen_GUI.java b/src/de/jaujau/gui/texturenauswaehlen_GUI.java index a005893..4319eca 100644 --- a/src/de/jaujau/gui/texturenauswaehlen_GUI.java +++ b/src/de/jaujau/gui/texturenauswaehlen_GUI.java @@ -13,6 +13,7 @@ import javax.swing.JPanel; import javax.swing.SwingConstants; import javax.swing.border.EmptyBorder; +import de.jaujau.daten.Spielerverwaltung; import de.jaujau.daten.Texturenpakete; import javax.swing.JComboBox; import javax.swing.JFileChooser; @@ -30,16 +31,18 @@ public class texturenauswaehlen_GUI extends JFrame{ private JComboBox comboBox; private JLabel vorschaubild; private JButton speichern, hinzufuegen, schliessen; + private Spielerverwaltung spielerverwaltung; /** * Konstruktor fpr das Fenster * @param texturenpakete */ - public texturenauswaehlen_GUI (Texturenpakete texturenpakete) { + public texturenauswaehlen_GUI (Texturenpakete texturenpakete, Spielerverwaltung spieler) { pakete = texturenpakete; erstelleFenster(); aktualisiereInhalt(); + spielerverwaltung = spieler; } @@ -130,7 +133,10 @@ public class texturenauswaehlen_GUI extends JFrame{ * Speichert die Auswahl des akutellen Paketes */ private void speichern() { -// if(spielerlevel >= pakete.getLevel(comboBox.getSelectedIndex())) { +// Austauschen sobalt Spielerverwaltung fertig +// if(spieler.getLevel() >= pakete.getLevel(comboBox.getSelectedIndex())) { +// pakete.setAktivesPaket(comboBox.getSelectedIndex()); +// aktualisiereBild(); // // } pakete.setAktivesPaket(comboBox.getSelectedIndex()); @@ -139,7 +145,7 @@ public class texturenauswaehlen_GUI extends JFrame{ /** - * Aktualaiset die Inhalte der ComboBox + * Aktualisiert die Inhalte der ComboBox */ private void aktualisiereInhalt() { comboBox.removeAllItems(); From 955fe052f81263d3c07fade24d369dba8dfc6dcb Mon Sep 17 00:00:00 2001 From: ekresse Date: Mon, 11 Jan 2021 15:15:07 +0100 Subject: [PATCH 10/11] GUI Update 5.3 --- src/de/jaujau/gui/texturenauswaehlen_GUI.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/de/jaujau/gui/texturenauswaehlen_GUI.java b/src/de/jaujau/gui/texturenauswaehlen_GUI.java index 4319eca..def228f 100644 --- a/src/de/jaujau/gui/texturenauswaehlen_GUI.java +++ b/src/de/jaujau/gui/texturenauswaehlen_GUI.java @@ -52,7 +52,7 @@ public class texturenauswaehlen_GUI extends JFrame{ private void erstelleFenster() { //Fenster größen fetslegen setAlwaysOnTop(true); - setBounds(100, 100, 588, 558); + setBounds(100, 100, 391, 361); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); @@ -61,40 +61,40 @@ public class texturenauswaehlen_GUI extends JFrame{ //Vorschaubild vorschaubild = new JLabel(); - vorschaubild.setBounds(117, 111, 167, 214); + vorschaubild.setBounds(32, 79, 167, 214); contentPane.add(vorschaubild); //Text "Texturenauswahl" JLabel lblNewLabel = new JLabel("Texturenauswahl"); - lblNewLabel.setBounds(5, 5, 562, 25); + lblNewLabel.setBounds(34, 11, 304, 25); lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 20)); lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER); contentPane.add(lblNewLabel); //Teste Hinzufügen hinzufuegen = new JButton("Hinzuf\u00FCgen"); - hinzufuegen.setBounds(309, 125, 137, 23); + hinzufuegen.setBounds(209, 82, 137, 23); hinzufuegen.addActionListener(e-> paketHinzufuegeb()); contentPane.add(hinzufuegen); //Teste Speichern speichern = new JButton("Speichern"); - speichern.setBounds(306, 231, 140, 23); + speichern.setBounds(209, 180, 140, 23); speichern.addActionListener(e-> speichern()); contentPane.add(speichern); //Teste Schießen schliessen = new JButton("Schlie\u00DFen"); - schliessen.setBounds(306, 177, 140, 23); + schliessen.setBounds(209, 130, 140, 23); schliessen.addActionListener(e-> schliessen()); contentPane.add(schliessen); //Auswahl Box comboBox = new JComboBox(); - comboBox.setBounds(117, 69, 351, 25); + comboBox.setBounds(10, 37, 351, 25); contentPane.add(comboBox); aktualisiereInhalt(); From 9d3d5a403cc054ef760e98a479ddb09a520d4792 Mon Sep 17 00:00:00 2001 From: ekresse Date: Mon, 11 Jan 2021 15:30:59 +0100 Subject: [PATCH 11/11] JFrame Image Icon 1.0 --- src/de/jaujau/gui/GUI.java | 7 +++++++ src/de/jaujau/spiellogik/Anwendung.java | 2 ++ src/img/jaujau.png | Bin 0 -> 7118 bytes 3 files changed, 9 insertions(+) create mode 100644 src/img/jaujau.png diff --git a/src/de/jaujau/gui/GUI.java b/src/de/jaujau/gui/GUI.java index 19c4e0f..477ca22 100644 --- a/src/de/jaujau/gui/GUI.java +++ b/src/de/jaujau/gui/GUI.java @@ -16,8 +16,13 @@ import de.jaujau.spiellogik.Spiel; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.io.File; +import java.io.IOException; + +import javax.imageio.ImageIO; import javax.swing.BoxLayout; import java.awt.Font; +import java.awt.Toolkit; @@ -38,6 +43,7 @@ public class GUI extends JFrame{ // Constructors // public GUI (Texturenpakete texturenpakete, Spielerverwaltung speicherung) { + setIconImage(Toolkit.getDefaultToolkit().getImage(GUI.class.getResource("/img/jaujau.png"))); setMinimumSize(new Dimension(1000, 600)); // jaujau.getAktuellesSpiel(); @@ -46,6 +52,7 @@ public class GUI extends JFrame{ setPreferredSize(new Dimension(800, 500)); setSize(1565, 916); getContentPane().setLayout(new BorderLayout(0, 0)); + JPanel Menue = new JPanel(); Menue.setPreferredSize(new Dimension(270, 450)); diff --git a/src/de/jaujau/spiellogik/Anwendung.java b/src/de/jaujau/spiellogik/Anwendung.java index 01a43f1..5410449 100644 --- a/src/de/jaujau/spiellogik/Anwendung.java +++ b/src/de/jaujau/spiellogik/Anwendung.java @@ -7,6 +7,8 @@ */ package de.jaujau.spiellogik; +import javax.swing.ImageIcon; + import de.jaujau.daten.Spielerverwaltung; import de.jaujau.daten.Texturenpakete; import de.jaujau.gui.GUI; diff --git a/src/img/jaujau.png b/src/img/jaujau.png new file mode 100644 index 0000000000000000000000000000000000000000..e966ba012dbc588ff8318f0b1e2b7fa39a9f2f5d GIT binary patch literal 7118 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 Eg1Ml$