【发布时间】:2016-12-15 17:51:51
【问题描述】:
我有这些函数显示一组椅子,坐着和空的,每 2 分钟按顺序更改一次,但是,每次我调用 removeSeats() 然后 displaySeats() 时,所有座位组件似乎都消失了,但是我知道他们是他们的,因为我还有另一个功能可以查看每把椅子的信息。
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();
}
【问题讨论】:
标签: java