diff --git a/Applicatie/DrawObject.java b/Applicatie/DrawObject.java index b875e16..85fe582 100644 --- a/Applicatie/DrawObject.java +++ b/Applicatie/DrawObject.java @@ -1,4 +1,5 @@ package Applicatie; + import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics2D; @@ -6,14 +7,13 @@ import java.awt.Image; import java.awt.Shape; import java.awt.geom.AffineTransform; import java.awt.geom.Ellipse2D; -import java.awt.geom.NoninvertibleTransformException; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import javax.swing.ImageIcon; - -public class DrawObject { +public abstract class DrawObject +{ Point2D position; double rotation; double scale; @@ -30,6 +30,7 @@ public class DrawObject { static final int UPPERRIGHT = 1; static final int BOTTOMLEFT = 2; static final int BOTTOMRIGHT = 3; + private Color rectangleColor; public DrawObject(String filename, Point2D position) { @@ -38,49 +39,55 @@ public class DrawObject { scale = 1; rotation = 0; this.position = position; + rectangleColor = Color.BLACK; } - + + public abstract String getName(); + public void draw(Graphics2D g) { AffineTransform tx = getTransform(); g.drawImage(image, tx, null); - if(selected) { -// g.rotate(Math.toRadians(rotation), image.getWidth(null)/2, image.getHeight(null)/2); - - AffineTransform rotate = AffineTransform.getRotateInstance(Math.toRadians(rotation), position.getX() + image.getWidth(null)/2, position.getY() +image.getHeight(null)/2); + if (selected) + { + // g.rotate(Math.toRadians(rotation), image.getWidth(null)/2, + // image.getHeight(null)/2); + + AffineTransform rotate = AffineTransform.getRotateInstance(Math.toRadians(rotation), position.getX() + image.getWidth(null) / 2, position.getY() + image.getHeight(null) / 2); g.transform(rotate); - g.setColor(Color.BLACK); + g.setColor(rectangleColor); g.setStroke(new BasicStroke(7)); rektAngle = new Rectangle2D.Double((int) position.getX(), (int) position.getY(), image.getWidth(null), image.getHeight(null)); tx = getTransformRectangle(); rektAngle.setFrame(tx.createTransformedShape(rektAngle).getBounds()); g.draw(rektAngle); g.setColor(Color.YELLOW); - upperLeftCorner = new Rectangle2D.Double(rektAngle.getX()-7,rektAngle.getY()-7,15,15); - upperRightCorner = new Rectangle2D.Double(rektAngle.getX() + rektAngle.getWidth()-8,rektAngle.getY()-7,15,15); - bottomLeftCorner = new Rectangle2D.Double(rektAngle.getX()-7,rektAngle.getY() + rektAngle.getHeight()-8,15,15); - bottomRightCorner = new Rectangle2D.Double(rektAngle.getX() + rektAngle.getWidth()-8,rektAngle.getY() + rektAngle.getHeight()-8,15,15); - g.fill(upperLeftCorner); //upperleft - g.fill(upperRightCorner); //upperright - g.fill(bottomLeftCorner); //bottomleft - g.fill(bottomRightCorner); //bottomright + upperLeftCorner = new Rectangle2D.Double(rektAngle.getX() - 7, rektAngle.getY() - 7, 15, 15); + upperRightCorner = new Rectangle2D.Double(rektAngle.getX() + rektAngle.getWidth() - 8, rektAngle.getY() - 7, 15, 15); + bottomLeftCorner = new Rectangle2D.Double(rektAngle.getX() - 7, rektAngle.getY() + rektAngle.getHeight() - 8, 15, 15); + bottomRightCorner = new Rectangle2D.Double(rektAngle.getX() + rektAngle.getWidth() - 8, rektAngle.getY() + rektAngle.getHeight() - 8, 15, 15); + g.fill(upperLeftCorner); // upperleft + g.fill(upperRightCorner); // upperright + g.fill(bottomLeftCorner); // bottomleft + g.fill(bottomRightCorner); // bottomright g.setColor(Color.RED); - rotateDot = new Ellipse2D.Double((rektAngle.getX() + (rektAngle.getWidth()/2))-8,rektAngle.getY()-8,15,15); + rotateDot = new Ellipse2D.Double((rektAngle.getX() + (rektAngle.getWidth() / 2)) - 8, rektAngle.getY() - 8, 15, 15); g.fill(rotateDot); - - + } } - protected AffineTransform getTransform() { + protected AffineTransform getTransform() + { AffineTransform tx = new AffineTransform(); tx.scale(scale, scale); tx.translate(position.getX(), position.getY()); tx.rotate(Math.toRadians(rotation), image.getWidth(null) / 2, image.getHeight(null) / 2); return tx; } - - protected AffineTransform getTransformSelection() { + + protected AffineTransform getTransformSelection() + { AffineTransform tx = new AffineTransform(); tx.scale(scale, scale); tx.translate(position.getX(), position.getY()); @@ -88,47 +95,85 @@ public class DrawObject { } /** - * Special transformation for the selection rectangle, because the translation of the image one places the rectangle translated from the image. + * Special transformation for the selection rectangle, because the + * translation of the image one places the rectangle translated from the + * image. + * * @return affineTransform */ - private AffineTransform getTransformRectangle() { + private AffineTransform getTransformRectangle() + { AffineTransform tx = new AffineTransform(); tx.scale(scale, scale); return tx; } - - public boolean contains(Point2D clickPoint) { + + public boolean contains(Point2D clickPoint) + { Shape shape; - if(rektAngle == null) { - shape = new Rectangle2D.Double(0,0,image.getWidth(null), image.getHeight(null)); + if (rektAngle == null) + { + shape = new Rectangle2D.Double(0, 0, image.getWidth(null), image.getHeight(null)); return getTransform().createTransformedShape(shape).contains(clickPoint); - } - else { - shape = new Rectangle2D.Double(-7,-7,image.getWidth(null)+7, image.getHeight(null)+7); + + } else + { + shape = new Rectangle2D.Double(-9, -9, image.getWidth(null) + 13, image.getHeight(null) + 13); return getTransformSelection().createTransformedShape(shape).contains(clickPoint); } - + } - - public Point2D getObjectPoint(Point2D point) { - try { - return getTransform().inverseTransform(point, null); - } catch (NoninvertibleTransformException e) { - e.printStackTrace(); - } - return null; - } - + /** - * This method checks if the place thats clicked is inside one of the corners. + * Method that gets all the corner coordinates + * index: + * 0 -> top left + * 1 -> top right + * 3 -> bottom left + * 4 -> bottom right + * @return corner coordinates + */ + public Point2D[] getCorners() { + Rectangle2D tempRekt = new Rectangle2D.Double(0,0,image.getWidth(null),image.getHeight(null)); + tempRekt.setFrame(getTransform().createTransformedShape(tempRekt).getBounds()); + Point2D[] points = new Point2D[4]; + Point2D point = new Point2D.Double(tempRekt.getX(),tempRekt.getY()); + points[0] = point; + point = new Point2D.Double(tempRekt.getX()+tempRekt.getHeight(),tempRekt.getY()); + points[1] = point; + point = new Point2D.Double(tempRekt.getX(),tempRekt.getY()+tempRekt.getHeight()); + points[2] = point; + point = new Point2D.Double(tempRekt.getX()+tempRekt.getHeight(),tempRekt.getY()+tempRekt.getHeight()); + points[3] = point; + return points; + } + + public boolean collision(Point2D[] corners) { + Point2D[] ownCorners = getCorners(); + for(int i = 0; i < corners.length; i++) { + Point2D corner = corners[i]; + if(corner.getX() > ownCorners[0].getX() && corner.getX() < ownCorners[1].getX()) { + if(corner.getY() > ownCorners[0].getY() && corner.getY() < ownCorners[2].getY()) { + return true; + } + } + } + return false; + } + + /** + * This method checks if the place thats clicked is inside one of the + * corners. * * @param point * @param corner * @return if the clicked point is inside one of the corners */ - public boolean containsCorner(Point2D point, int corner) { + public boolean containsCorner(Point2D point, int corner) + { Rectangle2D chosenCorner = null; - switch(corner) { + switch (corner) + { case 0: chosenCorner = upperLeftCorner; break; @@ -142,65 +187,84 @@ public class DrawObject { chosenCorner = bottomRightCorner; break; case 4: - if(point.getX() > rotateDot.getX() && point.getX() < rotateDot.getX() + rotateDot.getWidth() - && point.getY() > rotateDot.getY() && point.getY() < rotateDot.getY() + rotateDot.getHeight()) + if (point.getX() > rotateDot.getX() && point.getX() < rotateDot.getX() + rotateDot.getWidth() && point.getY() > rotateDot.getY() && point.getY() < rotateDot.getY() + rotateDot.getHeight()) return true; - else + else return false; + } - if(point.getX() > chosenCorner.getX() && point.getX() < chosenCorner.getX() + chosenCorner.getWidth() - && point.getY() > chosenCorner.getY() && point.getY() < chosenCorner.getY() + chosenCorner.getHeight()) + if (point.getX() > chosenCorner.getX() && point.getX() < chosenCorner.getX() + chosenCorner.getWidth() && point.getY() > chosenCorner.getY() && point.getY() < chosenCorner.getY() + chosenCorner.getHeight()) return true; - else + else return false; } - - public void setSelected(boolean b) { + + public void setSelected(boolean b) + { selected = b; } - public Point2D getPosition() { + public Point2D getPosition() + { return position; } - public void setPosition(Point2D position) { + public void setPosition(Point2D position) + { this.position = position; } - public double getRotation() { + public double getRotation() + { return rotation; } - public void setRotation(double rotation) { + public void setRotation(double rotation) + { this.rotation = rotation; } - public double getScale() { + public double getScale() + { return scale; } - public void setScale(double scale) { + public void setScale(double scale) + { this.scale = scale; } - public Image getImage() { + public Image getImage() + { return image; } - public void setImage(Image image) { + public void setImage(Image image) + { this.image = image; } - public boolean isSelected() { + public boolean isSelected() + { return selected; } - - public Rectangle2D getRectangle() { + + public Rectangle2D getRectangle() + { return rektAngle; } - - public void setRectangle(Rectangle2D rectangle) { + + public void setRectangle(Rectangle2D rectangle) + { rektAngle = rectangle; } - + + public Color getRectangleColor() { + return rectangleColor; + } + + public void setRectangleColor(Color rectangleColor) { + this.rectangleColor = rectangleColor; + } + } diff --git a/Applicatie/Main.java b/Applicatie/Main.java index 054d457..7966d16 100644 --- a/Applicatie/Main.java +++ b/Applicatie/Main.java @@ -1,10 +1,11 @@ package Applicatie; -public class Main { +public class Main +{ - public static void main(String[] args) { + public static void main(String[] args) + { new Window(); - } -} +} \ No newline at end of file diff --git a/Applicatie/MenuBar.java b/Applicatie/MenuBar.java index 0740a8b..ea7d268 100644 --- a/Applicatie/MenuBar.java +++ b/Applicatie/MenuBar.java @@ -1,4 +1,5 @@ package Applicatie; + import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -7,24 +8,26 @@ import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; +public class MenuBar extends JMenuBar +{ -public class MenuBar extends JMenuBar { - public MenuBar(Window w) { super(); - + JMenu file = new JMenu("File"); - - JMenuItem exit = new JMenuItem("Exit"); - exit.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - System.exit(0); + + JMenuItem exit = new JMenuItem("Exit"); + exit.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + System.exit(0); } }); - + file.add(exit); - + add(file); } } diff --git a/Applicatie/Panel.java b/Applicatie/Panel.java index 2f1f0fb..d7d0940 100644 --- a/Applicatie/Panel.java +++ b/Applicatie/Panel.java @@ -1,10 +1,12 @@ package Applicatie; +import java.awt.BasicStroke; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.TexturePaint; import java.awt.geom.AffineTransform; +import java.awt.geom.GeneralPath; import java.awt.geom.NoninvertibleTransformException; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; @@ -21,17 +23,18 @@ import Listeners.Mouse; import Listeners.MouseMotion; import Listeners.MouseWheel; import Objects.Entrance; +import Objects.Food; import Objects.Path; -import Objects.Podium; +import Objects.Stage; import Objects.Toilet; import Objects.Wall; @SuppressWarnings("serial") -public class Panel extends JPanel { +public class Panel extends JPanel +{ BufferedImage background; - BufferedImage podiumImage, toiletImage, entranceImage, pathImage, - wallImage; + BufferedImage podiumImage, toiletImage, entranceImage, pathImage, wallImage, foodImage; private int panelInfox, panelInfoy, scrollfactor; @@ -57,17 +60,21 @@ public class Panel extends JPanel { // en maak een case statement die een new Object returnt in // createNewDrawObject. - Panel(PropertiesPanel pp) { + Panel(PropertiesPanel pp) + { this.pp = pp; pp.setPanel(this); - try { + try + { background = ImageIO.read(new File("images/grass.jpg")); podiumImage = ImageIO.read(new File("images/stageIcon.png")); toiletImage = ImageIO.read(new File("images/wcIcon.png")); entranceImage = ImageIO.read(new File("images/entranceIcon.png")); pathImage = ImageIO.read(new File("images/pathIcon.png")); wallImage = ImageIO.read(new File("images/wallIcon.png")); - } catch (IOException e) { + foodImage = ImageIO.read(new File("images/foodIcon.png")); + } catch (IOException e) + { e.printStackTrace(); } panelInfo.add(podiumImage); @@ -75,6 +82,7 @@ public class Panel extends JPanel { panelInfo.add(entranceImage); panelInfo.add(pathImage); panelInfo.add(wallImage); + panelInfo.add(foodImage); panelInfox = 0; panelInfoy = 0; @@ -91,45 +99,53 @@ public class Panel extends JPanel { addMouseWheelListener(new MouseWheel(this)); } - public int getPanelInfoLength() { + public int getPanelInfoLength() + { int panelInfoLength = 0; - for (BufferedImage image : panelInfo) { + for (BufferedImage image : panelInfo) + { panelInfoLength += image.getWidth(); } return panelInfoLength; } - public DrawObject createNewDrawObject(int index) { - switch (index) { - case 0: - return new Podium(null); - case 1: - return new Toilet(null); - case 2: - return new Entrance(null); - case 3: - return new Path(null); - case 4: - return new Wall(null); - default: - return null; + public DrawObject createNewDrawObject(int index) + { + switch (index) + { + + case 0: + return new Stage(null); + case 1: + return new Toilet(null); + case 2: + return new Entrance(null); + case 3: + return new Path(null); + case 4: + return new Wall(null); + case 5: + return new Food(null); + default: + return null; } } - public void add(DrawObject dragObject) { + public void add(DrawObject dragObject) + { objects.add(dragObject); } - public void paintComponent(Graphics g) { + public void paintComponent(Graphics g) + { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; g2.setClip(new Rectangle2D.Double(0, 0, getWidth(), 300)); - // g2.fill(new Ellipse2D.Double(0,0,300,300)); - - // g2.drawImage(podiumImage, 0, 0, null); - for (BufferedImage image : panelInfo) { + g2.drawLine(0, 150, getWidth(), 150); + for (BufferedImage image : panelInfo) + { g2.drawImage(image, panelInfox + scrollfactor, panelInfoy, null); panelInfox += image.getWidth(); } @@ -139,12 +155,14 @@ public class Panel extends JPanel { AffineTransform oldTransform = g2.getTransform(); g2.setTransform(getCamera()); - TexturePaint p = new TexturePaint(background, new Rectangle2D.Double(0, - 0, 100, 100)); + TexturePaint p = new TexturePaint(background, new Rectangle2D.Double(0, 0, 100, 100)); g2.setPaint(p); g2.fill(new Rectangle2D.Double(-1920, -1080, 3840, 2160)); - for (DrawObject o : objects) { + BasicStroke stroke = new BasicStroke(10); + g2.setStroke(stroke); + for (DrawObject o : objects) + { o.draw(g2); } @@ -152,136 +170,169 @@ public class Panel extends JPanel { g2.setTransform(oldTransform); } - public AffineTransform getCamera() { + public AffineTransform getCamera() + { AffineTransform tx = new AffineTransform(); - tx.translate(-cameraPoint.getX() + getWidth() / 2, -cameraPoint.getY() - + getHeight() / 2); + tx.translate(-cameraPoint.getX() + getWidth() / 2, -cameraPoint.getY() + getHeight() / 2); tx.scale(cameraScale, cameraScale); return tx; } - public Point2D getClickPoint(Point point) { - try { + public Point2D getClickPoint(Point point) + { + try + { return getCamera().inverseTransform(point, null); - } catch (NoninvertibleTransformException e1) { + } catch (NoninvertibleTransformException e1) + { e1.printStackTrace(); } return null; } - public void setBackground(BufferedImage background) { + public void setBackground(BufferedImage background) + { this.background = background; } - public ArrayList getObjects() { + public ArrayList getObjects() + { return objects; } - public void setObjects(ArrayList objects) { + public void setObjects(ArrayList objects) + { this.objects = objects; } - public DrawObject getDragObject() { + public DrawObject getDragObject() + { return dragObject; } - public void setDragObject(DrawObject dragObject) { + public void setDragObject(DrawObject dragObject) + { this.dragObject = dragObject; } - public Point2D getCameraPoint() { + public Point2D getCameraPoint() + { return cameraPoint; } - public void setCameraPoint(Point2D cameraPoint) { + public void setCameraPoint(Point2D cameraPoint) + { this.cameraPoint = cameraPoint; } - public float getCameraScale() { + public float getCameraScale() + { return cameraScale; } - public void setCameraScale(float cameraScale) { + public void setCameraScale(float cameraScale) + { this.cameraScale = cameraScale; } - public Point2D getLastClickPosition() { + public Point2D getLastClickPosition() + { return lastClickPosition; } - public void setLastClickPosition(Point2D lastClickPosition) { + public void setLastClickPosition(Point2D lastClickPosition) + { this.lastClickPosition = lastClickPosition; } - public Point getLastMousePosition() { + public Point getLastMousePosition() + { return lastMousePosition; } - public void setLastMousePosition(Point lastMousePosition) { + public void setLastMousePosition(Point lastMousePosition) + { this.lastMousePosition = lastMousePosition; } - public BufferedImage getPodiumImage() { + public BufferedImage getPodiumImage() + { return podiumImage; } - public void setPodiumImage(BufferedImage podiumImage) { + public void setPodiumImage(BufferedImage podiumImage) + { this.podiumImage = podiumImage; } - public ArrayList getPanelInfo() { + public ArrayList getPanelInfo() + { return panelInfo; } - public void setPanelInfo(ArrayList panelInfo) { + public void setPanelInfo(ArrayList panelInfo) + { this.panelInfo = panelInfo; } - public int getScrollfactor() { + public int getScrollfactor() + { return scrollfactor; } - public void setScrollfactor(int scrollfactor) { + public void setScrollfactor(int scrollfactor) + { this.scrollfactor = scrollfactor; } - public int getPanelInfox() { + public int getPanelInfox() + { return panelInfox; } - public void setPanelInfox(int panelInfox) { + public void setPanelInfox(int panelInfox) + { this.panelInfox = panelInfox; } - public PropertiesPanel getPP() { + public PropertiesPanel getPP() + { return pp; } - public void update() { + public void update() + { repaint(); } - public DrawObject getSelectedObject() { + public DrawObject getSelectedObject() + { return selectedObject; } - public void setSelectedObject(DrawObject selectedObject) { + public void setSelectedObject(DrawObject selectedObject) + { this.selectedObject = selectedObject; } - public String getClickedOption() { + public String getClickedOption() + { return clickedOption; } - public void setClickedOption(String clickedOption) { + public void setClickedOption(String clickedOption) + { this.clickedOption = clickedOption; } - - public void removeObject(DrawObject o) { - Iterator itr = objects.iterator(); - while(itr.hasNext()) { + + public void removeObject(DrawObject o) + { + Iterator itr = objects.iterator(); + while (itr.hasNext()) + { DrawObject nextObject = (DrawObject) itr.next(); - if(nextObject.equals(o)) { + if (nextObject.equals(o)) + { pp.clearSelected(); itr.remove(); } diff --git a/Applicatie/PropertiesPanel.java b/Applicatie/PropertiesPanel.java index 2d9c128..e1b154e 100644 --- a/Applicatie/PropertiesPanel.java +++ b/Applicatie/PropertiesPanel.java @@ -6,28 +6,38 @@ import java.awt.Container; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Font; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.geom.Point2D; import javax.swing.BorderFactory; +import javax.swing.Box; import javax.swing.BoxLayout; +import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; @SuppressWarnings("serial") -public class PropertiesPanel extends JPanel { +public class PropertiesPanel extends JPanel +{ DrawObject selectedObject = null; Panel p = null; + Dimension spacerDimension = new Dimension(200, 30); + + JLabel nameLabel; + JTextField locationXField; JTextField locationYField; JTextField scaleField; JTextField rotationField; - PropertiesPanel() { + PropertiesPanel() + { super(); BoxLayout box = new BoxLayout(this, BoxLayout.PAGE_AXIS); setLayout(box); @@ -45,6 +55,46 @@ public class PropertiesPanel extends JPanel { propPanel.add(propLabel); add(propPanel); + // NAME + JPanel namePanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + nameLabel = new JLabel("No Selection"); + nameLabel.setFont(new Font("Segoe UI", Font.PLAIN, 20)); + namePanel.setPreferredSize(new Dimension(200, 40)); + namePanel.setMaximumSize(new Dimension(200, 40)); + namePanel.add(nameLabel); + add(namePanel); + + // SPACER + add(Box.createRigidArea(spacerDimension)); + + // BUTTONS + JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + JLabel buttonLabel = new JLabel("Actions"); + buttonLabel.setFont(new Font("Segoe UI", Font.ITALIC, 20)); + buttonPanel.setPreferredSize(new Dimension(200, 40)); + buttonPanel.setMaximumSize(new Dimension(200, 40)); + buttonPanel.add(buttonLabel); + add(buttonPanel); + + // DELETE + JPanel deletePanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + JButton deleteButton = new JButton("Delete"); + deleteButton.setFont(new Font("Segoe UI", Font.PLAIN, 20)); + deleteButton.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + p.removeObject(selectedObject); + } + }); + deletePanel.setPreferredSize(new Dimension(200, 50)); + deletePanel.setMaximumSize(new Dimension(200, 50)); + deletePanel.add(deleteButton); + add(deletePanel); + + // SPACER + add(Box.createRigidArea(spacerDimension)); + // LOCATION JPanel locationPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); JLabel locationLabel = new JLabel("Location"); @@ -63,27 +113,29 @@ public class PropertiesPanel extends JPanel { locationXField = new JTextField(); locationXField.setPreferredSize(new Dimension(150, 25)); { - locationXField.addKeyListener(new KeyListener() { + locationXField.addKeyListener(new KeyListener() + { - public void keyTyped(KeyEvent e) { + public void keyTyped(KeyEvent e) + { + } - try { + public void keyReleased(KeyEvent e) + { + try + { locationXField.setBackground(Color.WHITE); - double xpos = Double.parseDouble(locationXField - .getText()); - selectedObject.setPosition(new Point2D.Double(xpos, - selectedObject.getPosition().getY())); + double xpos = Double.parseDouble(locationXField.getText()); + selectedObject.setPosition(new Point2D.Double(xpos, selectedObject.getPosition().getY())); p.update(); - } catch (NumberFormatException nfe) { + } catch (NumberFormatException nfe) + { locationXField.setBackground(Color.RED); } - } - public void keyReleased(KeyEvent e) { - } - - public void keyPressed(KeyEvent e) { + public void keyPressed(KeyEvent e) + { } }); } @@ -99,28 +151,32 @@ public class PropertiesPanel extends JPanel { locationYField = new JTextField(); locationYField.setPreferredSize(new Dimension(150, 25)); { - locationYField.addKeyListener(new KeyListener() { + locationYField.addKeyListener(new KeyListener() + { - public void keyTyped(KeyEvent e) { - try { + public void keyTyped(KeyEvent e) + { + } + + public void keyReleased(KeyEvent e) + { + try + { locationYField.setBackground(Color.WHITE); - double ypos = Double.parseDouble(locationYField - .getText()); - selectedObject.setPosition(new Point2D.Double( - selectedObject.getPosition().getX(), ypos)); + double ypos = Double.parseDouble(locationYField.getText()); + selectedObject.setPosition(new Point2D.Double(selectedObject.getPosition().getX(), ypos)); ; p.update(); - } catch (NumberFormatException nfe) { + } catch (NumberFormatException nfe) + { locationYField.setBackground(Color.RED); } } - public void keyReleased(KeyEvent e) { - } - - public void keyPressed(KeyEvent e) { + public void keyPressed(KeyEvent e) + { } }); } @@ -145,26 +201,29 @@ public class PropertiesPanel extends JPanel { scaleField = new JTextField(); scaleField.setPreferredSize(new Dimension(150, 25)); { - scaleField.addKeyListener(new KeyListener() { + scaleField.addKeyListener(new KeyListener() + { - public void keyTyped(KeyEvent e) { + public void keyTyped(KeyEvent e) + { + } - try { + public void keyReleased(KeyEvent e) + { + try + { scaleField.setBackground(Color.WHITE); - double scale = Double.parseDouble(scaleField - .getText()); + double scale = Double.parseDouble(scaleField.getText()); selectedObject.setScale(scale); p.update(); - } catch (NumberFormatException nfe) { + } catch (NumberFormatException nfe) + { scaleField.setBackground(Color.RED); } - } - public void keyReleased(KeyEvent e) { - } - - public void keyPressed(KeyEvent e) { + public void keyPressed(KeyEvent e) + { } }); } @@ -189,27 +248,30 @@ public class PropertiesPanel extends JPanel { rotationField = new JTextField(); rotationField.setPreferredSize(new Dimension(150, 25)); { - rotationField.addKeyListener(new KeyListener() { + rotationField.addKeyListener(new KeyListener() + { - public void keyTyped(KeyEvent e) { + public void keyTyped(KeyEvent e) + { + } - try { + public void keyReleased(KeyEvent e) + { + try + { rotationField.setBackground(Color.WHITE); - int rotation = Integer.parseInt(rotationField - .getText()) % 360; + int rotation = Integer.parseInt(rotationField.getText()) % 360; rotationField.setText(rotation + ""); selectedObject.setRotation(rotation); p.update(); - } catch (NumberFormatException nfe) { + } catch (NumberFormatException nfe) + { rotationField.setBackground(Color.RED); } - } - public void keyReleased(KeyEvent e) { - } - - public void keyPressed(KeyEvent e) { + public void keyPressed(KeyEvent e) + { } }); } @@ -217,79 +279,90 @@ public class PropertiesPanel extends JPanel { } // SPACER - JPanel spacerPanel = new JPanel(); - spacerPanel.setPreferredSize(new Dimension(200, 50)); - spacerPanel.setMaximumSize(new Dimension(200, 50)); - spacerPanel.setBackground(new Color(220, 220, 220)); - add(spacerPanel); + add(Box.createRigidArea(spacerDimension)); - // EXAMPLE - JPanel examplePanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); - JLabel exampleLabel = new JLabel("Example"); - exampleLabel.setFont(new Font("Segoe UI", Font.ITALIC, 20)); - examplePanel.setPreferredSize(new Dimension(200, 100)); - examplePanel.setMaximumSize(new Dimension(200, 100)); - examplePanel.add(exampleLabel); - add(examplePanel); + // AGENDA + JPanel agendaPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + JLabel agendaLabel = new JLabel("Agenda"); + agendaLabel.setFont(new Font("Segoe UI", Font.ITALIC, 20)); + agendaPanel.setPreferredSize(new Dimension(200, 100)); + agendaPanel.setMaximumSize(new Dimension(200, 100)); + agendaPanel.add(agendaLabel); + add(agendaPanel); enableComponents(this, false); } - public void setSelected(DrawObject drOb) { + public void setSelected(DrawObject drOb) + { selectedObject = drOb; fillFields(); enableComponents(this, true); } - public void clearSelected() { + public void clearSelected() + { enableComponents(this, false); clearFields(this); selectedObject = null; } - public void update() { + public void update() + { fillFields(); } - private void enableComponents(Container container, boolean enable) { + private void enableComponents(Container container, boolean enable) + { Component[] components = container.getComponents(); - for (Component component : components) { + for (Component component : components) + { component.setEnabled(enable); - if (component instanceof Container) { + if (component instanceof Container) + { enableComponents((Container) component, enable); } } } - private void clearFields(Container container) { + private void clearFields(Container container) + { Component[] components = container.getComponents(); - for (Component component : components) { - if (component instanceof JTextField) { + for (Component component : components) + { + if (component instanceof JTextField) + { ((JTextField) component).setText(""); + ((JTextField) component).setBackground(Color.WHITE); + } - if (component instanceof Container) { + if (component instanceof Container) + { clearFields((Container) component); } } + + nameLabel.setText("No Selection"); + } - private void fillFields() { - if (selectedObject != null) { - locationXField.setText(Math.round(selectedObject.getPosition() - .getX()) + ""); - locationYField.setText(Math.round(selectedObject.getPosition() - .getY()) + ""); - scaleField - .setText((double) Math.round(selectedObject.getScale() * 10) - / 10 + ""); - rotationField - .setText(Math.round(selectedObject.getRotation() % 360) - + ""); + private void fillFields() + { + if (selectedObject != null) + { + nameLabel.setText(selectedObject.getName()); + + locationXField.setText(Math.round(selectedObject.getPosition().getX()) + ""); + locationYField.setText(Math.round(selectedObject.getPosition().getY()) + ""); + scaleField.setText((double) Math.round(selectedObject.getScale() * 10) / 10 + ""); + rotationField.setText(Math.round(selectedObject.getRotation() % 360) + ""); + } } - public void setPanel(Panel p) { + public void setPanel(Panel p) + { this.p = p; } } diff --git a/Applicatie/Window.java b/Applicatie/Window.java index 8f34cb7..fda7174 100644 --- a/Applicatie/Window.java +++ b/Applicatie/Window.java @@ -1,4 +1,5 @@ package Applicatie; + import java.awt.BorderLayout; import javax.swing.JFrame; @@ -6,32 +7,31 @@ import javax.swing.JPanel; import Listeners.Keyboard; - -public class Window extends JFrame { +public class Window extends JFrame +{ private static final long serialVersionUID = -1324363758675184283L; - Window() - { + Window() { super("Festival Plannner"); setDefaultCloseOperation(EXIT_ON_CLOSE); - setSize(500,600); - setExtendedState( getExtendedState()|JFrame.MAXIMIZED_BOTH ); - - //CONTENT PANELS + setSize(500, 600); + setExtendedState(getExtendedState() | JFrame.MAXIMIZED_BOTH); + + // CONTENT PANELS JPanel contentPanel = new JPanel(new BorderLayout()); PropertiesPanel pp = new PropertiesPanel(); Panel fp = new Panel(pp); contentPanel.add(fp, BorderLayout.CENTER); contentPanel.add(pp, BorderLayout.EAST); + addKeyListener(new Keyboard(fp)); setContentPane(contentPanel); - //END CONTENT PANELS - - - //MENUBAR + // END CONTENT PANELS + + // MENUBAR setJMenuBar(new MenuBar(this)); - //END MENUBAR - + // END MENUBAR + setFocusable(true); setVisible(true); } diff --git a/Listeners/Keyboard.java b/Listeners/Keyboard.java index 9c58ec5..0643b9b 100644 --- a/Listeners/Keyboard.java +++ b/Listeners/Keyboard.java @@ -17,7 +17,6 @@ public class Keyboard implements KeyListener { public void keyPressed(KeyEvent e) { if(e.getKeyCode() == e.VK_DELETE ) { if(panel.getSelectedObject() != null) { - System.out.println("lala"); panel.removeObject(panel.getSelectedObject()); } } diff --git a/Listeners/Mouse.java b/Listeners/Mouse.java index 20333c5..46c5b3d 100644 --- a/Listeners/Mouse.java +++ b/Listeners/Mouse.java @@ -9,33 +9,34 @@ import java.util.Map; import Applicatie.DrawObject; import Applicatie.Panel; -import Objects.Podium; -public class Mouse extends MouseAdapter { +import Objects.Stage; + +public class Mouse extends MouseAdapter +{ private Panel panel; private DrawObject selectedObject; - public Mouse(Panel panel) { + public Mouse(Panel panel) + { this.panel = panel; selectedObject = null; } - public void mousePressed(MouseEvent e) { + public void mousePressed(MouseEvent e) + { Point2D clickPoint = panel.getClickPoint(e.getPoint()); panel.setLastClickPosition(clickPoint); panel.setLastMousePosition(e.getPoint()); - if (e.getY() < 150) { - // if(e.getX() < 51) //51 = width podium image - // panel.setDragObject(new Podium(clickPoint)); - // else - // panel.setDragObject(new Toilet(clickPoint)); + if (e.getY() < 150) + { int i = 0; int last = 0; - for (BufferedImage image : panel.getPanelInfo()) { - if (e.getX() >= panel.getScrollfactor() - && e.getX() < last + image.getWidth() - + panel.getScrollfactor()) { + for (BufferedImage image : panel.getPanelInfo()) + { + if (e.getX() >= panel.getScrollfactor() && e.getX() < last + image.getWidth() + panel.getScrollfactor()) + { DrawObject tempDrawObj = panel.createNewDrawObject(i); tempDrawObj.setPosition(clickPoint); panel.setDragObject(tempDrawObj); @@ -43,31 +44,47 @@ public class Mouse extends MouseAdapter { } i++; last += image.getWidth(); - } - if (panel.getDragObject() != null) { + if (panel.getDragObject() != null) + { panel.add(panel.getDragObject()); } - } else { - for (DrawObject o : panel.getObjects()) { - if (o.contains(clickPoint)) { - if (o == selectedObject) { + } + else + { + for (DrawObject o : panel.getObjects()) + { + if (o.contains(clickPoint)) + { + if (o == selectedObject) + { boolean upperLeft = o.containsCorner(clickPoint, 0); boolean upperRight = o.containsCorner(clickPoint, 1); boolean bottomLeft = o.containsCorner(clickPoint, 2); boolean bottomRight = o.containsCorner(clickPoint, 3); boolean rotate = o.containsCorner(clickPoint, 4); - if (upperLeft) { + if (upperLeft) + { panel.setClickedOption("upperLeft"); - } else if (upperRight) { + } + else if (upperRight) + { panel.setClickedOption("upperRight"); - } else if (bottomLeft) { + } + else if (bottomLeft) + { panel.setClickedOption("bottomLeft"); - } else if (bottomRight) { + } + else if (bottomRight) + { panel.setClickedOption("bottomRight"); - } else if (rotate) { + } + else if (rotate) + { panel.setClickedOption("rotate"); - } else { + } + else + { panel.setClickedOption("drag"); } } @@ -78,19 +95,23 @@ public class Mouse extends MouseAdapter { panel.setDragObject(o); panel.getPP().setSelected(o); panel.setSelectedObject(o); + } } } - if (panel.getDragObject() == null && selectedObject != null) { + if (panel.getDragObject() == null && selectedObject != null) + { selectedObject.setSelected(false); + panel.getPP().clearSelected(); selectedObject = null; } panel.repaint(); } - public void mouseReleased(MouseEvent e) { + public void mouseReleased(MouseEvent e) + { panel.setDragObject(null); panel.setClickedOption("drag"); panel.repaint(); } -} \ No newline at end of file +} diff --git a/Listeners/MouseMotion.java b/Listeners/MouseMotion.java index aef03af..32b78ef 100644 --- a/Listeners/MouseMotion.java +++ b/Listeners/MouseMotion.java @@ -1,11 +1,16 @@ package Listeners; + +import java.awt.Color; +import java.awt.Point; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import java.awt.geom.Point2D; +import Applicatie.DrawObject; import Applicatie.Panel; -public class MouseMotion extends MouseMotionAdapter { +public class MouseMotion extends MouseMotionAdapter +{ private Panel panel; @@ -14,78 +19,102 @@ public class MouseMotion extends MouseMotionAdapter { this.panel = panel; } - public void mouseDragged(MouseEvent e) { + public void mouseDragged(MouseEvent e) + { Point2D clickPoint = panel.getClickPoint(e.getPoint()); - if(panel.getDragObject() != null) { - Point2D objectPoint = panel.getDragObject().getObjectPoint(panel.getDragObject().getPosition()); - switch(panel.getClickedOption()) { + Point2D tempPoint = null; + if (panel.getDragObject() != null) + { + switch (panel.getClickedOption()) + { case "drag": - if(panel.getDragObject() != null) - panel.getDragObject().setPosition(new Point2D.Double( - (panel.getDragObject().getPosition().getX() ) - ((panel.getLastClickPosition().getX() - clickPoint.getX()) ), - (panel.getDragObject().getPosition().getY()) - (panel.getLastClickPosition().getY() - clickPoint.getY()) )); + boolean collision = false; + if (panel.getDragObject() != null) + panel.getDragObject().setPosition(new Point2D.Double((panel.getDragObject().getPosition().getX()) - ((panel.getLastClickPosition().getX() - clickPoint.getX())) / panel.getDragObject().getScale(), + (panel.getDragObject().getPosition().getY()) - (panel.getLastClickPosition().getY() - clickPoint.getY()) / panel.getDragObject().getScale())); + for(DrawObject o : panel.getObjects()) { + if(o.collision(panel.getDragObject().getCorners()) && o != panel.getDragObject()) { + System.out.println("Hover"); + collision = true; + panel.getDragObject().setRectangleColor(Color.RED); + break; + } + if(!collision) { + System.out.println("nega"); + panel.getDragObject().setRectangleColor(Color.BLACK); + } + } break; case "upperLeft": - if(clickPoint.getX() < panel.getDragObject().getPosition().getX() && clickPoint.getY() < panel.getDragObject().getPosition().getY()) { + if (clickPoint.getX() < panel.getDragObject().getPosition().getX() && clickPoint.getY() < panel.getDragObject().getPosition().getY()) + { resizeBigger(); + } else if (clickPoint.getX() > panel.getDragObject().getPosition().getX() && clickPoint.getY() > panel.getDragObject().getPosition().getY()) + { + resizeSmaller(clickPoint); } - else if (clickPoint.getX() > panel.getDragObject().getPosition().getX() && clickPoint.getY() > panel.getDragObject().getPosition().getY()) { - resizeSmaller(); - } break; case "upperRight": - if(clickPoint.getX() > panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() < panel.getDragObject().getRectangle().getY()) { + if (clickPoint.getX() > panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() < panel.getDragObject().getRectangle().getY()) + { resizeBigger(); - } - else if (clickPoint.getX() < panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() > panel.getDragObject().getRectangle().getY()) { - resizeSmaller(); + } else if (clickPoint.getX() < panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() > panel.getDragObject().getRectangle().getY()) + { + resizeSmaller(clickPoint); } break; - case "bottomLeft": - if(clickPoint.getX() < panel.getDragObject().getRectangle().getX() && clickPoint.getY() > panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) { + case "bottomLeft": + if (clickPoint.getX() < panel.getDragObject().getRectangle().getX() && clickPoint.getY() > panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) + { resizeBigger(); - } - else if (clickPoint.getX() > panel.getDragObject().getRectangle().getX() && clickPoint.getY() < panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) { - resizeSmaller(); + } else if (clickPoint.getX() > panel.getDragObject().getRectangle().getX() && clickPoint.getY() < panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) + { + resizeSmaller(clickPoint); } break; case "bottomRight": - if(clickPoint.getX() > panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() > panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) { + if (clickPoint.getX() > panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() > panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) + { resizeBigger(); - } - else if (clickPoint.getX() < panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() < panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) { - resizeSmaller(); + } else if (clickPoint.getX() < panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() < panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) + { + resizeSmaller(clickPoint); } break; - case "rotate": + case "rotate": double tempval = panel.getDragObject().getRotation() - (panel.getLastClickPosition().getX() - clickPoint.getX()); panel.getDragObject().setRotation(tempval); break; } + } else + { + panel.setCameraPoint(new Point2D.Double(panel.getCameraPoint().getX() + (panel.getLastMousePosition().getX() - e.getX()), panel.getCameraPoint().getY() + (panel.getLastMousePosition().getY() - e.getY()))); } - else { - panel.setCameraPoint(new Point2D.Double( - panel.getCameraPoint().getX() + (panel.getLastMousePosition().getX() - e.getX()), - panel.getCameraPoint().getY() + (panel.getLastMousePosition().getY() - e.getY()) - )); - } + panel.repaint(); panel.setLastMousePosition(e.getPoint()); panel.setLastClickPosition(clickPoint); panel.getPP().update(); } - - private void resizeBigger() { - double scale = panel.getDragObject().getScale()*1 + 0.02; + + private void resizeBigger() + { + double scale = panel.getDragObject().getScale() + 0.05; + panel.getDragObject().setScale(scale); - panel.getDragObject().setPosition(new Point2D.Double(panel.getDragObject().getPosition().getX()-2,panel.getDragObject().getPosition().getY()-2)); + panel.getDragObject().setPosition(new Point2D.Double(panel.getDragObject().getPosition().getX(), panel.getDragObject().getPosition().getY() - 5)); + } - - private void resizeSmaller() { - if(panel.getDragObject().getScale() > 0.2) { - double scale = panel.getDragObject().getScale()*1 - 0.02; + + private void resizeSmaller(Point2D clickPoint) + { + System.out.println(clickPoint.getX()); + if (panel.getDragObject().getScale() > 0.2) + { + double scale = panel.getDragObject().getScale() - 0.05; panel.getDragObject().setScale(scale); - panel.getDragObject().setPosition(new Point2D.Double(panel.getDragObject().getPosition().getX()+2,panel.getDragObject().getPosition().getY()+2)); + panel.getDragObject().setPosition(new Point2D.Double(panel.getDragObject().getPosition().getX() - clickPoint.getX(), panel.getDragObject().getPosition().getY() - clickPoint.getY())); + } } } diff --git a/Listeners/MouseWheel.java b/Listeners/MouseWheel.java index 59aa825..85893a4 100644 --- a/Listeners/MouseWheel.java +++ b/Listeners/MouseWheel.java @@ -7,41 +7,46 @@ import java.awt.geom.Point2D; import Applicatie.DrawObject; import Applicatie.Panel; -public class MouseWheel implements MouseWheelListener { +public class MouseWheel implements MouseWheelListener +{ private Panel panel; private int scrollfactor; - public MouseWheel(Panel panel) { + public MouseWheel(Panel panel) + { this.panel = panel; scrollfactor = 20; } - public void mouseWheelMoved(MouseWheelEvent e) { - if (e.getY() < 150) { + public void mouseWheelMoved(MouseWheelEvent e) + { + if (e.getY() < 150) + { - if (e.getPreciseWheelRotation() < 0) { - if (panel.getScrollfactor() + scrollfactor - + panel.getPanelInfoLength() < panel.getWidth()) { - panel.setScrollfactor(panel.getScrollfactor() - + scrollfactor); + if (e.getPreciseWheelRotation() < 0) + { + if (panel.getScrollfactor() + scrollfactor + panel.getPanelInfoLength() < panel.getWidth()) + { + panel.setScrollfactor(panel.getScrollfactor() + scrollfactor); } - } else { - if (panel.getScrollfactor() - scrollfactor >= 0) { - panel.setScrollfactor(panel.getScrollfactor() - - scrollfactor); + } else + { + if (panel.getScrollfactor() - scrollfactor >= 0) + { + panel.setScrollfactor(panel.getScrollfactor() - scrollfactor); } } - } else { + } else + { // cameraPoint - double cameraScale = panel.getCameraScale() * 1 - - (e.getPreciseWheelRotation() / 10); + double cameraScale = panel.getCameraScale() * 1 - (e.getPreciseWheelRotation() / 10); panel.setCameraScale((float) cameraScale); } panel.repaint(); } -} \ No newline at end of file +} diff --git a/Objects/Entrance.java b/Objects/Entrance.java index 7cd5803..69a7033 100644 --- a/Objects/Entrance.java +++ b/Objects/Entrance.java @@ -1,13 +1,21 @@ package Objects; + import java.awt.geom.Point2D; import Applicatie.DrawObject; +public class Entrance extends DrawObject +{ -public class Entrance extends DrawObject { - - public Entrance(Point2D position) { + public Entrance(Point2D position) + { super("images/entrance.png", position); } -} \ No newline at end of file + @Override + public String getName() + { + return "Entrance"; + } + +} diff --git a/Objects/Food.java b/Objects/Food.java new file mode 100644 index 0000000..cdd5028 --- /dev/null +++ b/Objects/Food.java @@ -0,0 +1,17 @@ +package Objects; +import java.awt.geom.Point2D; + +import Applicatie.DrawObject; + + +public class Food extends DrawObject { + + public Food(Point2D position) { + super("images/food.png", position); + } + + public String getName() { + return "Food"; + } + +} diff --git a/Objects/Path.java b/Objects/Path.java index 0a2beec..1cde2ff 100644 --- a/Objects/Path.java +++ b/Objects/Path.java @@ -1,13 +1,21 @@ package Objects; + import java.awt.geom.Point2D; import Applicatie.DrawObject; +public class Path extends DrawObject +{ -public class Path extends DrawObject { - - public Path(Point2D position) { + public Path(Point2D position) + { super("images/path.jpg", position); } + @Override + public String getName() + { + return "Path"; + } + } diff --git a/Objects/Stage.java b/Objects/Stage.java new file mode 100644 index 0000000..9827adc --- /dev/null +++ b/Objects/Stage.java @@ -0,0 +1,20 @@ +package Objects; + +import java.awt.geom.Point2D; + +import Applicatie.DrawObject; + +public class Stage extends DrawObject +{ + public Stage(Point2D position) + { + super("images/stage4.png", position); + } + + @Override + public String getName() + { + return "Stage"; + } + +} diff --git a/Objects/Toilet.java b/Objects/Toilet.java index 162b4d7..f0a0aa8 100644 --- a/Objects/Toilet.java +++ b/Objects/Toilet.java @@ -1,13 +1,21 @@ package Objects; + import java.awt.geom.Point2D; import Applicatie.DrawObject; +public class Toilet extends DrawObject +{ -public class Toilet extends DrawObject { - - public Toilet(Point2D position) { + public Toilet(Point2D position) + { super("images/wc.png", position); } + @Override + public String getName() + { + return "Toilet"; + } + } diff --git a/Objects/Wall.java b/Objects/Wall.java index 284f0c5..6c213d4 100644 --- a/Objects/Wall.java +++ b/Objects/Wall.java @@ -1,13 +1,21 @@ package Objects; + import java.awt.geom.Point2D; import Applicatie.DrawObject; +public class Wall extends DrawObject +{ -public class Wall extends DrawObject { - - public Wall(Point2D position) { + public Wall(Point2D position) + { super("images/wall.png", position); } -} \ No newline at end of file + @Override + public String getName() + { + return "Wall"; + } + +}