Hey!
Ich lerne grade Jave Programmieren mit dem Buch "Java von Kopf bis Fuß". Dabei habe ich mir zum Spaß und zur übung ein kleines Projekt vorgenommen:
Das Kartenspiel "Durak" zu schreiben. Die Regeln des Kartenspiels sind erstmal nicht so wichtig.
Ich habe jetzt grade das Kapitel über GUIs durch und habe mir auch gleich eine gebastelt, aber irgentwie habe ich das gefühl der Code ist ziemlich unsauber. Es kommt zwar in etwa das raus was ich haben wollte, aber ich bin trotzdem nicht ganz zufrieden und ich möchte mir natürlich keine unsaubere schreibweise angewöhnen.
Ich hoffe auf ein paar Verbesserungsvorschläge.
Hier die GUI wie sie bis jetzt aussieht:
Und hier der code:
Danke für eure Hilfe
Ich lerne grade Jave Programmieren mit dem Buch "Java von Kopf bis Fuß". Dabei habe ich mir zum Spaß und zur übung ein kleines Projekt vorgenommen:
Das Kartenspiel "Durak" zu schreiben. Die Regeln des Kartenspiels sind erstmal nicht so wichtig.
Ich habe jetzt grade das Kapitel über GUIs durch und habe mir auch gleich eine gebastelt, aber irgentwie habe ich das gefühl der Code ist ziemlich unsauber. Es kommt zwar in etwa das raus was ich haben wollte, aber ich bin trotzdem nicht ganz zufrieden und ich möchte mir natürlich keine unsaubere schreibweise angewöhnen.
Ich hoffe auf ein paar Verbesserungsvorschläge.
Hier die GUI wie sie bis jetzt aussieht:

Und hier der code:
Java:
import java.awt.*;
import javax.swing.*;
public class GUI {
JComboBox handkartenCombo = new JComboBox();
static{
JFrame frame = new JFrame("Durak");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String[] tischKartenNamen = {"Pik Bube", "Herz Dame"};
JList tischKarten = new JList(tischKartenNamen);
frame.add(tischKarten, BorderLayout.CENTER);
JPanel spielerControlsPanel = new JPanel();
spielerControlsPanel.setLayout(new BoxLayout(spielerControlsPanel, BoxLayout.Y_AXIS));
frame.add(spielerControlsPanel, BorderLayout.WEST);
JComponent[][] spielerControls = new JComponent[4][7];
for (int i = 0; i<4; i++) {//Alle spieler durchgehen
spielerControls[i][0] = new JPanel(new BorderLayout()); //Das Panel für den Spieler erstellen (BorderLayout)
spielerControls[i][0].setBorder(BorderFactory.createLineBorder(Color.red)); //Den farbigen Rand zeichnen //! Farbe je nach status bestimmen
JLabel tempLabel = new JLabel("Spieler " + (i+1)); //Das Label für den Spielernamen erstellen
tempLabel.setHorizontalAlignment(SwingConstants.CENTER); //Das Label zentrieren
spielerControls[i][0].add(tempLabel, BorderLayout.NORTH); //Das Label zum Panel hinzufügen
String[] tempStringArray = {"Pik Bube", "Herz Dame"}; //! Temporär
spielerControls[i][1] = new JList(tempStringArray); //Die Liste für die Handkarten erstellen //! Scrollbalken
spielerControls[i][0].add(spielerControls[i][1], BorderLayout.WEST); //Die Liste zum Panel hinzufügen
spielerControls[i][2] = new JPanel(new GridLayout(5, 1, 0, 1)); //Ein Panel für die Buttons erstellen
// spielerControls[i][2].setLayout(new BoxLayout(spielerControls[i][2], BoxLayout.Y_AXIS)); //Das Layout für das Panel auf BoxLayout setzen (untereinander)
spielerControls[i][3] = new JButton("Angreifen");
spielerControls[i][4] = new JButton("Decken");
spielerControls[i][4].setEnabled(false);
spielerControls[i][5] = new JButton("Schieben");
spielerControls[i][5].setEnabled(false);
spielerControls[i][6] = new JButton("Schlucken");
spielerControls[i][6].setEnabled(false);;
spielerControls[i][2].add(spielerControls[i][3]);
spielerControls[i][2].add(spielerControls[i][4]);
spielerControls[i][2].add(spielerControls[i][5]);
spielerControls[i][2].add(spielerControls[i][6]);
spielerControls[i][0].add(spielerControls[i][2], BorderLayout.EAST);
spielerControlsPanel.add(spielerControls[i][0]); //Das Panel auf das Spielerpanel setzen
}
frame.setSize(800,800);
frame.setVisible(true);
}
private GUI() {} //Nicht instanzierbar
}
Danke für eure Hilfe