F
FranzFerdinand
Gast
Hallöle Leutis,
ich habe da ein kleines Problem:
Ich habe ein 11 mal 11 GridLayout mit 121 JPanels. Ich möchte nun, dass die letzte Reihe, die 11. (Javatechnisch #10) ein einziges JPanel und nicht 11 verschiedene ist. Ich würde da gerne Text drauf schreiben, in die gesamte letzte Zeile.
Dazu habe ich mal gegooglet, ob man die 11 JPanels nicht zu einem Panel machen kann. So übergreifend. Dazu habe ich nichts gefunden, ich habs stattdessen so probiert:
Also mit einfach 11 mal 10 und dann unten ein ganz großes ran ging schon mal gar nicht.
Nun hatte ich das so probiert, dass ich die letzte Reihe versuche auszublenden und dann von dem allerersten ganz unten die Breite verelffache, ausgehend vom Wert einer beliebigen anderen Zelle 5,5, weil die ja alle gleich groß sind.
Aber das klappt so nicht. Ich lasse mich mit der Backgroundzeile da die Zelle Pink machen, um das besser zu sehen und leider ist da weiterhin nur die aller erste von 11 Plätzen Pink.
Kurze Frage: GridLayout heißt ja auch gleiche Größe...
Ist das, was ich da mache überhaupt sinnvoll und möglich?
Wie funktioniert das??
Schöne Grüße
Lukas
ich habe da ein kleines Problem:
Ich habe ein 11 mal 11 GridLayout mit 121 JPanels. Ich möchte nun, dass die letzte Reihe, die 11. (Javatechnisch #10) ein einziges JPanel und nicht 11 verschiedene ist. Ich würde da gerne Text drauf schreiben, in die gesamte letzte Zeile.
Dazu habe ich mal gegooglet, ob man die 11 JPanels nicht zu einem Panel machen kann. So übergreifend. Dazu habe ich nichts gefunden, ich habs stattdessen so probiert:
Java:
public class Spielfeld extends JPanel {
private Spielzelle spielfeldzelle[][] = new Spielzelle[11][11];
public Spielfeld() {
setLayout(new GridLayout(11,11));
for(int i=0;i<11;i++) {
for(int n=0;n<11;n++) {
spielfeldzelle[n][i] = new Spielzelle(Spielzelle.Typ.Leer);
spielfeldzelle[n][i].setBackground(new Color(0,255,255));
spielfeldzelle[n][i].setOpaque(true);
add(spielfeldzelle[n][i]);
}
}
for(int i=1;i<11;i++) {
spielfeldzelle[i][10].setOpaque(false);
}
spielfeldzelle[0][10].setSize(spielfeldzelle[5][5].getWidth()*11, spielfeldzelle[5][5].getHeight());
spielfeldzelle[0][10].setBackground(new Color(255,0,255));
spielfeldzelle[0][10].setOpaque(true);
Also mit einfach 11 mal 10 und dann unten ein ganz großes ran ging schon mal gar nicht.
Nun hatte ich das so probiert, dass ich die letzte Reihe versuche auszublenden und dann von dem allerersten ganz unten die Breite verelffache, ausgehend vom Wert einer beliebigen anderen Zelle 5,5, weil die ja alle gleich groß sind.
Aber das klappt so nicht. Ich lasse mich mit der Backgroundzeile da die Zelle Pink machen, um das besser zu sehen und leider ist da weiterhin nur die aller erste von 11 Plätzen Pink.
Kurze Frage: GridLayout heißt ja auch gleiche Größe...
Ist das, was ich da mache überhaupt sinnvoll und möglich?
Wie funktioniert das??
Schöne Grüße
Lukas