UnitGraph.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package ui.view;
  2. import java.awt.BasicStroke;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.RenderingHints;
  7. import java.awt.event.ComponentEvent;
  8. import java.awt.event.ComponentListener;
  9. import java.awt.event.MouseEvent;
  10. import java.awt.event.MouseListener;
  11. import java.awt.event.MouseMotionListener;
  12. import java.util.ArrayList;
  13. import java.awt.Point;
  14. import javax.swing.ImageIcon;
  15. import javax.swing.JButton;
  16. import javax.swing.JLabel;
  17. import javax.swing.JPanel;
  18. import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader.Array;
  19. import classes.CpsObject;
  20. import ui.controller.Control;
  21. import ui.model.Model;
  22. class UnitGraph extends JPanel implements MouseListener, MouseMotionListener, ComponentListener {
  23. private final int NUMBER = 50;
  24. private static final long serialVersionUID = 1L;
  25. private Control controller;
  26. private Model model;
  27. private Graphics2D g2;
  28. Point[] pointList = new Point[NUMBER];
  29. private boolean pointDrag = false;
  30. private int tempP;
  31. public UnitGraph(final Model model, Control control) {
  32. this.controller = control;
  33. this.model = model;
  34. for (int i = 0; i < pointList.length; i++) {
  35. pointList[i] = new Point(0,0);
  36. }
  37. this.addMouseListener(this);
  38. this.addMouseMotionListener(this);
  39. this.addComponentListener(this);
  40. }
  41. /**
  42. * Paints all Components on the Canvas
  43. *
  44. * @param Graphics
  45. *
  46. */
  47. public void paintComponent(Graphics g) {
  48. super.paintComponent(g);
  49. g2 = (Graphics2D) g;
  50. RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  51. g2.setRenderingHints(rh);
  52. g2.setStroke(new BasicStroke(1));
  53. g2.setColor(Color.LIGHT_GRAY);
  54. for (int i = 0; i < pointList.length; i++) {
  55. g2.drawLine((int)pointList[i].getX(), 0, (int)pointList[i].getX(), this.getHeight());
  56. }
  57. g2.setColor(Color.BLACK);
  58. g2.setStroke(new BasicStroke(2));
  59. for (int i = 0; i < pointList.length-1; i++) {
  60. g2.drawLine((int)pointList[i].getX(), (int)pointList[i].getY(), (int)pointList[i+1].getX(), (int)pointList[i+1].getY());
  61. }
  62. }
  63. @Override
  64. public void mouseDragged(MouseEvent e) {
  65. if (pointDrag && e.getY()>= this.getHeight()/3) {
  66. pointList[tempP].setLocation(pointList[tempP].getX(), e.getY());
  67. }
  68. repaint();
  69. }
  70. @Override
  71. public void mouseMoved(MouseEvent e) {
  72. // TODO Auto-generated method stub
  73. }
  74. @Override
  75. public void mouseClicked(MouseEvent e) {
  76. // TODO Auto-generated method stub
  77. }
  78. @Override
  79. public void mouseEntered(MouseEvent e) {
  80. // TODO Auto-generated method stub
  81. }
  82. @Override
  83. public void mouseExited(MouseEvent e) {
  84. // TODO Auto-generated method stub
  85. }
  86. @Override
  87. public void mousePressed(MouseEvent e){
  88. for (int i = 0; i < pointList.length; i++) {
  89. if(e.getX()-this.getWidth()/NUMBER/2<=pointList[i].getX() && e.getX()+this.getWidth()/NUMBER/2>=pointList[i].getX() && e.getY()-10<pointList[i].getY() && e.getY()+10>pointList[i].getY()){
  90. pointDrag = true;
  91. tempP = i;
  92. }
  93. }
  94. }
  95. @Override
  96. public void mouseReleased(MouseEvent e) {
  97. if (pointDrag) {
  98. pointDrag = false;
  99. }
  100. }
  101. public void componentResized(ComponentEvent e) {
  102. // resize listener
  103. System.out.println("resize");
  104. for (int i = 0; i < pointList.length; i++) {
  105. pointList[i] = new Point((i)*this.getWidth()/(NUMBER-1),this.getHeight()/3);
  106. }
  107. repaint();
  108. }
  109. @Override
  110. public void componentHidden(ComponentEvent e) {
  111. }
  112. @Override
  113. public void componentMoved(ComponentEvent e) {
  114. }
  115. @Override
  116. public void componentShown(ComponentEvent e) {
  117. }
  118. }