MyCanvas.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package ui.view;
  2. import java.awt.Graphics;
  3. import java.awt.Image;
  4. import java.awt.event.MouseEvent;
  5. import java.awt.event.MouseListener;
  6. import java.awt.event.MouseMotionListener;
  7. import java.util.LinkedList;
  8. import javax.swing.ImageIcon;
  9. import javax.swing.JPanel;
  10. import classes.CpsObject;
  11. import classes.HolonObject;
  12. class MyCanvas extends JPanel implements MouseListener, MouseMotionListener
  13. {
  14. private Image img = null; // Contains the image to draw on MyCanvas
  15. private int x = 0;
  16. private int y = 0;
  17. LinkedList<CpsObject> choords = new LinkedList<>();
  18. boolean dragging = false;
  19. CpsObject tempCPS = null;
  20. public MyCanvas()
  21. {
  22. img = new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage().getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH);
  23. this.addMouseListener(this);
  24. this.addMouseMotionListener(this);
  25. }
  26. public void paintComponent(Graphics g)
  27. {
  28. // Draws the image to the canvas
  29. super.paintComponent(g);
  30. for (CpsObject cps : choords){
  31. g.drawImage(img, cps.getPos().x, cps.getPos().y, null);
  32. }
  33. }
  34. @Override
  35. public void mouseClicked(MouseEvent e) {
  36. // TODO Auto-generated method stub
  37. HolonObject h = new HolonObject("Haus");
  38. h.setPos(x-15, y-15);
  39. choords.add(h);
  40. System.out.println("Draw: "+e.getX()+" "+e.getY()+" "+h.getID());
  41. repaint();
  42. }
  43. @Override
  44. public void mouseEntered(MouseEvent e) {
  45. // TODO Auto-generated method stub
  46. }
  47. @Override
  48. public void mouseExited(MouseEvent e) {
  49. // TODO Auto-generated method stub
  50. }
  51. @Override
  52. public void mousePressed(MouseEvent e) {
  53. // TODO Auto-generated method stub
  54. x = e.getX();
  55. y = e.getY();
  56. for (CpsObject cps : choords){
  57. int cx = cps.getPos().x;
  58. int cy = cps.getPos().y;
  59. if (x-img.getWidth(null)<=cx && y-img.getHeight(null) <=cy&& x+img.getWidth(null)>=cx && y+img.getHeight(null)>= cy) {
  60. tempCPS = cps;
  61. dragging = true;
  62. }
  63. }
  64. }
  65. @Override
  66. public void mouseReleased(MouseEvent e) {
  67. if(dragging){
  68. x = e.getX();
  69. y = e.getY();
  70. dragging = false;
  71. tempCPS.setPos(e.getX()-15, e.getY()-15);
  72. tempCPS = null;
  73. repaint();
  74. }
  75. }
  76. @Override
  77. public void mouseDragged(MouseEvent e) {
  78. // TODO Auto-generated method stub
  79. if(dragging){
  80. tempCPS.setPos(e.getX()-15, e.getY()-15);
  81. repaint();
  82. System.out.println("drag: "+e.getX()+" "+e.getY());
  83. }
  84. }
  85. @Override
  86. public void mouseMoved(MouseEvent e) {
  87. // TODO Auto-generated method stub
  88. }
  89. }