Список объектов заменён на синхронизируемый. Исправлено обновление экрана.

This commit is contained in:
Victor 2013-12-02 14:13:38 +02:00
parent c30e0a3512
commit 76f2ca06e4

View File

@ -4,8 +4,10 @@ import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
/**
* Панель рисования.
@ -16,7 +18,7 @@ public class PaintPanel extends JPanel {
private final List<PaintableObject> paintables;
public PaintPanel(int width, int height) {
paintables = new ArrayList<>();
paintables = Collections.synchronizedList(new ArrayList<PaintableObject>());
setBackground(Color.WHITE);
setPreferredSize(new Dimension(width, height));
@ -24,7 +26,13 @@ public class PaintPanel extends JPanel {
public synchronized void addPaintable(PaintableObject obj) {
paintables.add(obj);
invalidate();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
repaint();
}
});
}
@Override