Hi ,
Habe mal wieder ein Layout Bug, den ich einfach nicht lösen kann.
Folgende Situation. Ich habe eine Methode in der ich ein int als Parameter übergebe (Spieleranzahl).
In der Methode soll je nach Spieleranzahl unterschiedlich viele Balken (JPanels) angezeigt werden, welche ich mit einem JLabel fülle.
1. JPanels werden wie gewünscht erstellt, jedoch wird immer nur das letzte JLabel auf dem jeweilig letztem JPanel angezeigt.
2. an den JPanels hängen MouseListeners dran, wenn ich diese anspreche werden auch die rechtlichen
Labels korrekt angezeigt.
alle Panels und Labels sind Instanzvariablen
hier der Code:
repaint(), validate(), ???? Wenn ja, an welcher Stelle
Vielen Dank im vorraus
Breiti
P.S. ... ich weiss es geht auch ohne Schleife, war nur ein Versuch von Mir das neu zeichnen zu erzwingen ... da es ja nach dem MouseEvent angezeigt wird...
Habe mal wieder ein Layout Bug, den ich einfach nicht lösen kann.
Folgende Situation. Ich habe eine Methode in der ich ein int als Parameter übergebe (Spieleranzahl).
In der Methode soll je nach Spieleranzahl unterschiedlich viele Balken (JPanels) angezeigt werden, welche ich mit einem JLabel fülle.
1. JPanels werden wie gewünscht erstellt, jedoch wird immer nur das letzte JLabel auf dem jeweilig letztem JPanel angezeigt.
2. an den JPanels hängen MouseListeners dran, wenn ich diese anspreche werden auch die rechtlichen
Labels korrekt angezeigt.
alle Panels und Labels sind Instanzvariablen
hier der Code:
Java:
public static void erzeugeSpielerbar(int anzahl){
//MouseListenerObjekte
Player2 player2 = new Player2();
Player3 player3 = new Player3();
Player4 player4 = new Player4();
for(int count = 0; count <= anzahl; count++){
bar.isVisible();
bar.setBounds(0,0,283,85);
bar2.setBounds(0,0,283,85);
if (count == 4){
spielerbar4.setBounds(875,256,283,85);
spielerbar4.setLayout(null);
spielerbar4.setOpaque(true);
spielerbar4.add(bar);
bar.setBounds(0,0,283,85);
spielerbar4.addMouseListener(player4);
spielerbar4.validate();
plan.add(spielerbar4);
}
if (count == 3){
bar.setBounds(0,0,283,85);
spielerbar3.setBounds(875,166,283,85);
spielerbar3.setLayout(null);
spielerbar3.add(bar);
spielerbar3.setOpaque(true);
spielerbar3.addMouseListener(player3);
spielerbar3.validate();
plan.add(spielerbar3);
}
if (count == 2){
bar.setBounds(0,0,283,85);
spielerbar2.setBounds(875,76,283,85);
spielerbar2.setLayout(null);
spielerbar2.add(bar);
spielerbar2.setOpaque(true);
spielerbar2.addMouseListener(player2);
spielerbar2.validate();
plan.add(spielerbar2);
}
}
}
repaint(), validate(), ???? Wenn ja, an welcher Stelle
Vielen Dank im vorraus
Breiti
P.S. ... ich weiss es geht auch ohne Schleife, war nur ein Versuch von Mir das neu zeichnen zu erzwingen ... da es ja nach dem MouseEvent angezeigt wird...
Zuletzt bearbeitet: