GUI Erste Spielimpressionen

This commit is contained in:
ekresse
2021-01-06 14:25:00 +01:00
parent 7cf8423cba
commit f3de3ff336
2 changed files with 72 additions and 14 deletions

View File

@@ -22,6 +22,7 @@ import javax.swing.DefaultComboBoxModel;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Image; import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import javax.swing.JComboBox; import javax.swing.JComboBox;
@@ -36,7 +37,10 @@ import java.awt.ComponentOrientation;
import java.awt.Cursor; import java.awt.Cursor;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.UIManager; import javax.swing.UIManager;
import java.awt.Font;
public class Dashboard_GUI extends JPanel{ public class Dashboard_GUI extends JPanel{
private static final long serialVersionUID = -7380187913989942586L; private static final long serialVersionUID = -7380187913989942586L;
@@ -55,7 +59,7 @@ public class Dashboard_GUI extends JPanel{
private final JPanel spielfeld = new JPanel(); private final JPanel spielfeld = new JPanel();
private final JPanel player_hand = new JPanel(); private final JPanel player_hand = new JPanel();
private final JPanel gegner_hand = new JPanel(); private final JPanel gegner_hand = new JPanel();
private final JLabel ablagestapel = new JLabel("Ablagestapel"); private final JLabel ablagestapel = new JLabel("");
private final JLabel ziehstapel = new JLabel(""); private final JLabel ziehstapel = new JLabel("");
private final JScrollPane scrollPane = new JScrollPane(); private final JScrollPane scrollPane = new JScrollPane();
private final JLabel lblNewLabel_2_1 = new JLabel(""); private final JLabel lblNewLabel_2_1 = new JLabel("");
@@ -63,9 +67,12 @@ public class Dashboard_GUI extends JPanel{
JLabel labels[] = new JLabel[32]; JLabel labels[] = new JLabel[32];
private Audio sound = new Audio(); private Audio sound = new Audio();
private Spiel aktuellesSpiel; private Spiel aktuellesSpiel;
private final JPanel gegenerkarten = new JPanel(); private JPanel gegenerkarten = new JPanel();
private JLabel label_aktuellerSpieler;
private Texturenpakete texturenpakete;
public Dashboard_GUI(Spiel Spiel, Texturenpakete texturenpakete) { public Dashboard_GUI(Spiel Spiel, Texturenpakete texturen) {
texturenpakete = texturen;
texturenpakete.addPaket("StandartTexturenBeta3.zip"); texturenpakete.addPaket("StandartTexturenBeta3.zip");
texturenpakete.setAktivesPaket(0); texturenpakete.setAktivesPaket(0);
System.out.println(texturenpakete.getAktivesPaket()); System.out.println(texturenpakete.getAktivesPaket());
@@ -107,6 +114,7 @@ public class Dashboard_GUI extends JPanel{
gegenerkarten.setBackground(new Color(169, 169, 169)); gegenerkarten.setBackground(new Color(169, 169, 169));
scrollPane.setViewportView(gegenerkarten); scrollPane.setViewportView(gegenerkarten);
ablagestapel.setPreferredSize(new Dimension(242, 362));
ablagestapel.setHorizontalAlignment(SwingConstants.CENTER); ablagestapel.setHorizontalAlignment(SwingConstants.CENTER);
ablagestapel.setBounds(618, 267, 137, 210); ablagestapel.setBounds(618, 267, 137, 210);
@@ -135,8 +143,20 @@ public class Dashboard_GUI extends JPanel{
sound.test(); sound.test();
} }
}); });
btnNewButton_1.setBounds(293, 346, 89, 23); btnNewButton_1.setBounds(26, 197, 89, 23);
spielfeld.add(btnNewButton_1); spielfeld.add(btnNewButton_1);
JLabel beschreibung_aktuellerSpieler = new JLabel("Aktueller Spieler:");
beschreibung_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18));
beschreibung_aktuellerSpieler.setForeground(Color.WHITE);
beschreibung_aktuellerSpieler.setBounds(435, 163, 156, 31);
spielfeld.add(beschreibung_aktuellerSpieler);
label_aktuellerSpieler = new JLabel("Auswahlphase");
label_aktuellerSpieler.setForeground(Color.WHITE);
label_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18));
label_aktuellerSpieler.setBounds(601, 163, 163, 31);
spielfeld.add(label_aktuellerSpieler);
panelCont.add(start, "3"); panelCont.add(start, "3");
start.setLayout(new BorderLayout(0, 0)); start.setLayout(new BorderLayout(0, 0));
panel.setPreferredSize(new Dimension(10, 30)); panel.setPreferredSize(new Dimension(10, 30));
@@ -156,19 +176,21 @@ public class Dashboard_GUI extends JPanel{
highscore.setLayout(new BorderLayout(0, 0)); highscore.setLayout(new BorderLayout(0, 0));
//Erstes Panel wird angezeigt
cl.show(panelCont, "3"); cl.show(panelCont, "3");
add(panelCont); add(panelCont);
renderStart(); //Startseite beim ersten <20>ffnen aktualisieren renderStart(); //Startseite beim ersten <20>ffnen aktualisieren
} }
//Spiel Panel wird gezeigt
public void showgame(Spiel Spiel){ public void showgame(Spiel Spiel){
//Neues Spiel wird <20>bergeben
aktuellesSpiel = Spiel; aktuellesSpiel = Spiel;
System.out.println("DASHBOARD: Game darstellen"); System.out.println("DASHBOARD: Game darstellen");
cl.show(panelCont, "2"); cl.show(panelCont, "2");
repaint(); aktuellesSpiel.spiel();
revalidate(); aktualisiereGUI();
} }
public void showstart(){ public void showstart(){
@@ -215,9 +237,7 @@ public class Dashboard_GUI extends JPanel{
}; };
table.setAutoCreateRowSorter(true); //Tabelle Sortierbar durch Tabellenkopf table.setAutoCreateRowSorter(true); //Tabelle Sortierbar durch Tabellenkopf
table.getTableHeader().setReorderingAllowed(false); //Tabelle nicht mehr drag and drop table.getTableHeader().setReorderingAllowed(false); //Tabelle nicht mehr drag and drop
table.setModel(tableModel); table.setModel(tableModel);
highscore.add( new JScrollPane( table ) ); highscore.add( new JScrollPane( table ) );
@@ -240,6 +260,15 @@ public class Dashboard_GUI extends JPanel{
labels[i].setSize(new Dimension(120, 180)); labels[i].setSize(new Dimension(120, 180));
labels[i].setHorizontalTextPosition(SwingConstants.CENTER); labels[i].setHorizontalTextPosition(SwingConstants.CENTER);
labels[i].setHorizontalAlignment(SwingConstants.CENTER); labels[i].setHorizontalAlignment(SwingConstants.CENTER);
labels[i].setName(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i).toString());
labels[i].addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
aktuellesSpiel.karteLegen(Integer.parseInt(e.getComponent().getName()));
System.out.println("Karte: " + e.getComponent().getName() + " ausgew<65>hlt.");
aktualisiereGUI();
}
});
labels[i].setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i)).getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH))); labels[i].setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i)).getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH)));
spielerkarten.add(labels[i]); spielerkarten.add(labels[i]);
spielerkarten.updateUI(); //Panel erneuern spielerkarten.updateUI(); //Panel erneuern
@@ -249,8 +278,31 @@ public class Dashboard_GUI extends JPanel{
void aktualisiereAblage(Spiel aktuellesSpiel, Texturenpakete texturen){ void aktualisiereAblage(Spiel aktuellesSpiel, Texturenpakete texturen){
ablagestapel.setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getletzteKarte()).getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH))); ablagestapel.setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getletzteKarte()).getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH)));
ablagestapel.revalidate();
ablagestapel.repaint();
} }
void aktualisiereSpieleranzeige(Spiel aktuellesSpiel) {
if(aktuellesSpiel.getamZug() == Spieler.COMPUTER) {
label_aktuellerSpieler.setText("Gegner");
label_aktuellerSpieler.setForeground(Color.RED);
}
if(aktuellesSpiel.getamZug() == Spieler.SPIELER) {
label_aktuellerSpieler.setText("Gegner");
label_aktuellerSpieler.setForeground(Color.GREEN);
}
if(aktuellesSpiel.getamZug() == null) {
label_aktuellerSpieler.setText("Auswahlphase");
label_aktuellerSpieler.setForeground(Color.WHITE);
}
}
public void aktualisiereGUI(){
aktualisiereSpieleranzeige(aktuellesSpiel);
aktualisiereAblage(aktuellesSpiel, texturenpakete);
aktualisiereHand(aktuellesSpiel, texturenpakete);
}
} }

View File

@@ -52,13 +52,15 @@ public class Spiel {
* alterniert zwischen Spieler und Computer, legt Beginner fest * alterniert zwischen Spieler und Computer, legt Beginner fest
*/ */
public void spiel() { public void spiel() {
if(!spielgestartet) { System.out.println("Spiel gestartet.");
//Spiel nicht gestartet
if(!spielgestartet) {
Random zufallszahl = new Random(); Random zufallszahl = new Random();
int zahl = zufallszahl.nextInt(1); int zahl = zufallszahl.nextInt(1);
if(zahl == 1) { //Starter durch zufall bestimmen if(zahl == 1) { //Starter durch zufall bestimmen
amZug = Spieler.SPIELER; amZug = Spieler.SPIELER;
} }
else { else {
amZug = Spieler.COMPUTER; amZug = Spieler.COMPUTER;
} }
spielgestartet = true; spielgestartet = true;
@@ -73,6 +75,8 @@ public class Spiel {
kartensatz.ablegen(kartenindex); //nicht in der Hand befindliche Karte zum Start aufdecken kartensatz.ablegen(kartenindex); //nicht in der Hand befindliche Karte zum Start aufdecken
return; return;
} }
//Spiel gestartet
if(amZug == Spieler.SPIELER) { if(amZug == Spieler.SPIELER) {
amZug = Spieler.COMPUTER; amZug = Spieler.COMPUTER;
if(spielzug.zugMoeglich(Spieler.COMPUTER)) { if(spielzug.zugMoeglich(Spieler.COMPUTER)) {
@@ -85,7 +89,9 @@ public class Spiel {
} }
} }
public Spieler getamZug() {
return amZug;
}
/** /**
* falls eine Karte gelegt werden kann wird diese gelegt * falls eine Karte gelegt werden kann wird diese gelegt
* @param kartenindex * @param kartenindex