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

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