Hallo Leute,
Ich bin hier neu im Forum und da es mir hier sehr gut erscheint stelle ich meine Frage mal hier herein.
Also ich sitze zurzeit an einem Memory projekt dran. Ich hab es geschafft ein lauffähiges Memory zu programmieren. Allerdings bin ich neu in Java und habe noch ein oder andere Probleme bezüglich Swing. Ich bin kein gute Programmierer aber versuche eine bestmögliche Lösung zu finden.
Ich hab einige Probleme mit dem Layout. Ich verstehe nicht ganz wie ich etwas einfüge. Ich habs mit BoarderLayout versucht aber es macht doch noch Probleme. Es lässt mich einfach verzweifelt dasitzen.
So sieht es aus
So sollte es aussehen (habs mit Photoshop geändert)
Hier der Code
Hier ist noch eine Stelle die mich stört, wo ich frustriert dran sitze
So siehts aus:
so sollte es aussehen:
Code:
Wie biege ich das zurecht?
gruß nasir
Ich bin hier neu im Forum und da es mir hier sehr gut erscheint stelle ich meine Frage mal hier herein.
Also ich sitze zurzeit an einem Memory projekt dran. Ich hab es geschafft ein lauffähiges Memory zu programmieren. Allerdings bin ich neu in Java und habe noch ein oder andere Probleme bezüglich Swing. Ich bin kein gute Programmierer aber versuche eine bestmögliche Lösung zu finden.
Ich hab einige Probleme mit dem Layout. Ich verstehe nicht ganz wie ich etwas einfüge. Ich habs mit BoarderLayout versucht aber es macht doch noch Probleme. Es lässt mich einfach verzweifelt dasitzen.
So sieht es aus

So sollte es aussehen (habs mit Photoshop geändert)

Hier der Code
Java:
....
JPanel uebersicht = new JPanel();
uebersicht.setLayout(new BorderLayout(5, 5));
uebersicht.setBorder(new TitledBorder("Übersicht"));
//je nach Spieleranzahl
uebersicht.setLayout(new GridLayout(1, player.length));
//je nach Spieleranzahl
JPanel[] spielerUebersicht = new JPanel[player.length];
//Buttons werden auf dem Panel gesetzt
//Spieler 1 0<1 und Spieler 2 0<2
//Es wird für jeden Spieler ein Panle erstellt mit Daten!
for (int i = 0; i < player.length; i++)
{
spielerUebersicht[i] = new JPanel();
spielerUebersicht[i].setLayout(new GridLayout(3, 1));
spielerUebersicht[i].setBorder(new TitledBorder("Spieler" + (i+1)));
//Button
JButton b = new JButton(deckBild);
b.setPreferredSize(d);
b.setEnabled(false);
//Labels;
zugLabel[i] = new JLabel("Versuche: " + player[i].getZug());
paarLabel[i] = new JLabel("Gefunde Paare: "+ player[i].getPaareGefunden());
spielerUebersicht[i].add(b);
spielerUebersicht[i].add(zugLabel[i]);
spielerUebersicht[i].add(paarLabel[i]);
uebersicht.add(spielerUebersicht[i]);
}
...
//Standart!!
JPanel content = new JPanel();
content.setLayout(new BorderLayout(5, 5));
content.setBorder(BorderFactory.createTitledBorder("Game!"));
content.add(buttonPanel, BorderLayout.CENTER);
content.add(uebersicht, BorderLayout.EAST);
content.add(unterPanel, BorderLayout.SOUTH);
//Standart
setContentPane(content);
pack();
setTitle("Spiele Memory");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
this.setResizable(false);
setVisible(true);
Hier ist noch eine Stelle die mich stört, wo ich frustriert dran sitze
So siehts aus:

so sollte es aussehen:

Code:
Java:
JPanel statistik = new JPanel();
statistik.setBorder(new TitledBorder("die letzten Statistiken:"));
statistik.setLayout(new GridLayout(1, player.length+1));
JPanel[] spielerStatistik = new JPanel[player.length];
JPanel einzelneSpiele = new JPanel();
einzelneSpiele.setLayout(new GridLayout(6, 1));
int[] zuegeStatistik;
int[] paareGefundenStatistik;
for(int i = 0; i < player.length; i++)
{
spielerStatistik[i] = new JPanel();
spielerStatistik[i].setLayout(new GridLayout(6, 2));
spielerStatistik[i].setBorder(new TitledBorder("Spieler " + (i+1)));
spielerStatistik[i].add(new JLabel("Versuche"));
spielerStatistik[i].add(new JLabel("Gefunden!"));
if(i == 0) einzelneSpiele.add(new JLabel("Spiele"));
// Es wird ein IntegerArray übergeben!
zuegeStatistik = player[i].getZugStatistik();
paareGefundenStatistik = player[i].getPaarStatistik();
for(int j = 0; j < zuegeStatistik.length; j++)
{
if(i == 0) einzelneSpiele.add(new JLabel((j+1)+"."));
spielerStatistik[i].add(new JLabel(""+zuegeStatistik[j]));
spielerStatistik[i].add(new JLabel(""+paareGefundenStatistik[j]));
}
if(i == 0) {statistik.add(einzelneSpiele);}
statistik.add(spielerStatistik[i]);
}
...
//die einzelnen Panels werden nun georndet!
JPanel content = new JPanel();
content = new JPanel();
content.setLayout(new BorderLayout(5, 5));
content.setBorder(BorderFactory.createTitledBorder("Memory"));
content.add(statistik, BorderLayout.NORTH);
content.add(endeRadioPanel, BorderLayout.WEST);
content.add(ok, BorderLayout.SOUTH);
setContentPane(content);
pack();
setTitle("Startup");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setResizable(false);
setVisible(true);
Wie biege ich das zurecht?
gruß nasir