0
Ich habe diese Funktionen, die eine Gruppe von Stühlen zeigen, sitzend und leer, die sich alle zwei Minuten ändert, aber jedes Mal, wenn ich removeSeats() und DisplaySeats() anrufe, scheinen alle Sitzkomponenten zu verschwinden, aber ich Ich weiß, dass sie ihre sind, weil ich eine andere Funktion habe, die die Information anzeigt, die jeder Stuhl hat.Wie benutze ich repaint() und revalidate()?
private void removeSeats(){
for(int i = 0; i < c.getClassroom().size(); i++)
pnlGame.remove(c.getClassroom().get(i).getSprite());
for(int i = 0; i < emptySeats.size(); i++)
pnlGame.remove(emptySeats.get(i).getSprite());
pnlGame.repaint();
}
private void displaySeats(){
// GAME SCREEN (pnlGame) Components
emptySeats = new ArrayList<Sprite>();
Sprite temp;
int x = 25, y = 70, xS = 0, yS = 0, eI = 0, cI = 0;
for(int i = 0; i < 64; i++){
if(i % 8 == 0 && i != 0){
x = 25;
y += 80;
}
temp = new Sprite();
temp.setName("Empty Seat");
temp.getSprite().setBorder(BorderFactory.createLineBorder(Color.black));
temp.setSprite(new JLabel(new ImageIcon("src\\seat.png")));
temp.setOrigin(x, y);
temp.setDimensions(40, 60);
if(c.search(xS, yS) != null){
if(c.getClassroom().get(cI).isPresent()){
c.getClassroom().get(cI).getSprite().setBorder(BorderFactory.createLineBorder(Color.white));
c.getClassroom().get(cI).setOrigin(x, y);
c.getClassroom().get(cI).setDimensions(40, 60);
pnlGame.add(c.getClassroom().get(cI).getSprite());
}else{
emptySeats.add(temp);
pnlGame.add(emptySeats.get(eI).getSprite());
eI++;
}
cI++;
}else{
emptySeats.add(temp);
pnlGame.paintComponents(temp.getSprite().getGraphics());
pnlGame.add(emptySeats.get(eI).getSprite());
eI++;
}
xS++;
if(xS >= 8){
xS = 0;
yS++;
}
x += 80;
}
pnlGame.revalidate();
}