Ebene für allgemeine zeichenbare Objekte

ggf. sollte der ShapesLayer auch ein DrawableLayer sein
This commit is contained in:
ngb 2022-01-02 22:13:55 +01:00
parent 88f6a0bcc8
commit 666ab3ee26
1 changed files with 56 additions and 0 deletions

View File

@ -0,0 +1,56 @@
package schule.ngb.zm;
import java.awt.*;
import java.util.LinkedList;
public class DrawableLayer extends Layer {
protected LinkedList<Drawable> drawables = new LinkedList<>();
protected boolean clearBeforeDraw = true;
public DrawableLayer() {
}
public DrawableLayer( int width, int height ) {
super(width, height);
}
public void add( Drawable... drawables ) {
synchronized( drawables ) {
for( Drawable d : drawables ) {
this.drawables.add(d);
}
}
}
public java.util.List<Drawable> getDrawables() {
return drawables;
}
public boolean isClearBeforeDraw() {
return clearBeforeDraw;
}
public void setClearBeforeDraw( boolean pClearBeforeDraw ) {
this.clearBeforeDraw = pClearBeforeDraw;
}
@Override
public void draw( Graphics2D pGraphics ) {
if( clearBeforeDraw ) {
clear();
}
synchronized( drawables ) {
for( Drawable d : drawables ) {
if( d.isVisible() ) {
d.draw(drawing);
}
}
}
super.draw(pGraphics);
}
}