Я рисую массив JButtons.Вызов setBackground
немедленно перерисовывает эту кнопку.
Проблема в том, что при повторном вызове redraw
кнопки не обновляются синхронно.
т.е. есть небольшая задержка между перерисовкой одной кнопки и другой кнопкой на одном и том же проходе redraw()
.
Есть ли способ заставить все кнопки перерисовывать все вместе?
Буду признателен за любые указатели или предложения.Спасибо.
Примечание:
- CellButton расширяет javax.swing.JButton.
- Все кнопки содержатся в JPanel
grid
.
final JPanel grid = new JPanel();
Collection<CellButton> cells = new ArrayList<CellButton>();
for(int j=0;j<gridSize;j++){
for(int i=0;i<gridSize;i++){
CellButton cellButton = new CellButton(i,j);
cellButton.setBackground(Color.gray);
cellButton.addMouseListener(gridListener);
cells.add(cellButton);
grid.add(cellButton);
}
}
...
void redraw(){
Iterator<CellButton> iter = cells.iterator();
int x,y;
while(iter.hasNext()){
CellButton cellBtn=iter.next();
x=cellBtn.x();
y=cellBtn.y();
cellBtn.setBackground(model.getColor(x,y));
}
}`