Hallo Freunde!
Ich bin noch nicht lange im Java-Geschäft und habe deshalb noch so meine Probleme!
Zur Zeit lasse ich eine for-Schleife 49 Mal durchlaufen und kreire jedes Mal ein Panel mit einer Zahl (label) darin. Das Problem ist, dass ich am Ende nur zwei Panels wirklich sehe ...?
Das Ziel wäre, dass immer sieben Panels nebeneinander und sieben Panels untereinander mit einer grösse von 150x150 Pixeln wären. Was mache ich falsch?
Dies ist meine Main-Methode und nun folgt die Card-Klasse (Teile davon)!
Könnte es evt. daran liegen, dass ich meine Panels immer unter dem Namen card (line 14, oberes Codestück) speichere? Wie kann ich sie unter variablen Namen speichern?
Ich bin noch nicht lange im Java-Geschäft und habe deshalb noch so meine Probleme!
Zur Zeit lasse ich eine for-Schleife 49 Mal durchlaufen und kreire jedes Mal ein Panel mit einer Zahl (label) darin. Das Problem ist, dass ich am Ende nur zwei Panels wirklich sehe ...?
Das Ziel wäre, dass immer sieben Panels nebeneinander und sieben Panels untereinander mit einer grösse von 150x150 Pixeln wären. Was mache ich falsch?
Java:
public static void main(String[] args) {
// TODO Auto-generated method stub
play play = new play();
play.setVisible(true);
play.setTitle("Kartenspiel");
play.setDefaultCloseOperation(EXIT_ON_CLOSE);
card cards[] = new card[49];
int z = 0;
for(int y = 1;y<=7;y++) {
for(int x = 1;x<=7;x++) {
cards[z] = new card();
JPanel card = cards[z].add_card(z, x, y);
play.add(card);
play.pack();
z++;
System.out.println(z);
}
z++;
}
}
Java:
public JPanel add_card(int i, int x, int y) {
this.index = i;
this.value = (int) (Math.random()*10+1);
this.x = x;
this.y = y;
return createJPanel(this.value);
}
private JPanel createJPanel(int i) {
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.CENTER;
JPanel panel = new JPanel(gbl);
panel.setSize(150, 150);
panel.setBorder(BorderFactory.createLineBorder(Color.black));
panel.setBackground(Color.yellow);
JLabel label = new JLabel(""+i);
gbl.setConstraints(label,gbc);
panel.add(label);
panel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
System.out.println("done");
}});
return panel;
}
Könnte es evt. daran liegen, dass ich meine Panels immer unter dem Namen card (line 14, oberes Codestück) speichere? Wie kann ich sie unter variablen Namen speichern?