Advertisement
Guest User

asaasas1

a guest
Apr 30th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.31 KB | None | 0 0
  1. /* MultiPath
  2. * Anderson, Franceschi
  3. */
  4.  
  5. import java.awt.Graphics;
  6. import java.awt.Color;
  7. import java.awt.Font;
  8.  
  9. public class MultiPath
  10. {
  11. // array path keeps track of the path
  12. private boolean [] path = { false, false, false, false, false, false };
  13.  
  14. // count counts how many times the method animate was called
  15. // therefore deducting when the code hits the first break statement
  16. private int count = 0;
  17.  
  18. // current is the value of test in MultiPathClient
  19. private int current;
  20.  
  21. // makes sure we only draw once
  22. private boolean control = true;
  23.  
  24. // 2 seconds of pause between the 2 images
  25. private static int animationPause = 2;
  26.  
  27. public MultiPath( )
  28. {
  29. }
  30.  
  31. public MultiPath( boolean [] p, int c1, int c2 )
  32. {
  33. setPath( p );
  34. count = c1;
  35. current = c2;
  36. }
  37.  
  38. public void resetPath( )
  39. {
  40. for ( int i = 0; i < path.length; i++ )
  41. {
  42. path[i] = false;
  43. }
  44. }
  45.  
  46. public void setPath( boolean [] p )
  47. {
  48. for ( int i = 0; i < path.length; i++ )
  49. {
  50. path[i] = p[i];
  51. }
  52. }
  53.  
  54. public void setPath( int i, boolean b )
  55. {
  56. if ( i >= 0 && i < path.length )
  57. path[i] = true;
  58. else
  59. path[path.length - 1] = true;
  60. }
  61.  
  62. public void setCount( int c )
  63. {
  64. count = c;
  65. }
  66.  
  67. public int getCount( )
  68. {
  69. return count;
  70. }
  71.  
  72. public void setCurrent( int c )
  73. {
  74. current = c;
  75. }
  76.  
  77. public void setControl( boolean b )
  78. {
  79. control = b;
  80. }
  81.  
  82. public void addToCount( )
  83. {
  84. count ++;
  85. }
  86.  
  87. public int firstIndexTrue( )
  88. {
  89. int temp = -1;
  90. for ( int i = 0; i < path.length; i++ )
  91. {
  92. if ( path[i] )
  93. {
  94. return i;
  95. }
  96. }
  97. return temp;
  98. }
  99.  
  100. public int lastIndexTrue( )
  101. {
  102. return ( firstIndexTrue( ) + count - 1 );
  103. }
  104.  
  105. public void displayCountAndIndexes( )
  106. {
  107. int firstIndex = firstIndexTrue( );
  108. System.out.print( "count = " + count );
  109. System.out.print( "\tfirstIndex = " + firstIndex );
  110. System.out.println( "\tlastIndex true = " + ( firstIndex + count - 1 ) );
  111. }
  112.  
  113. public void draw( Graphics g )
  114. {
  115. // displayCountAndIndexes( );
  116. if ( control )
  117. drawPath( g );
  118. }
  119.  
  120. public void drawPath( Graphics g )
  121. {
  122. int startX = 100, startY = 25;
  123. g.setColor( new Color( 127,255,212 ) );
  124. // vertical entry line (1st line)
  125. // g.drawLine(startX, startY, startX, startY + 25);
  126. g.fillRect( startX - 2, startY, 5, 25 );
  127. // entry rectangle (1st rectangle)
  128. g.fillRoundRect( startX - 50, startY + 25, 100, 40, 10, 10 );
  129. // 2nd vertical line
  130. // g.drawLine(startX, startY + 65, startX, startY + 90);
  131. g.fillRect( startX - 2, startY + 65, 5, 25 );
  132. // 2nd rectangle
  133. g.fillRoundRect( startX - 50, startY + 90, 100, 40, 10, 10);
  134. // 8th right line
  135. g.drawLine( startX + 250, startY + 430, startX + 250, startY + 480 );
  136. // last rectangle
  137. g.fillRoundRect( startX + 200, startY + 480, 100, 40, 10, 10 );
  138. // last line
  139. // g.drawLine(startX + 250, startY + 520, startX + 250, startY + 545);
  140. g.fillRect( startX + 248, startY + 520, 5, 25 );
  141. //////////////////////////////////////////
  142. // NOW select drawing color depending on objects to draw and path
  143.  
  144. // left rectangles
  145. g.setColor( Color.LIGHT_GRAY );
  146. for ( int i = 1; i < path.length; i++ )
  147. {
  148. if ( i <= firstIndexTrue( ) )
  149. g.setColor( new Color( 127, 255, 212 ) );
  150. else
  151. g.setColor( Color.LIGHT_GRAY );
  152. g.fillRoundRect(startX - 50, startY + 90 + (65 * i), 100, 40, 10, 10 );
  153. }
  154.  
  155. // left vertical lines
  156. g.setColor( Color.LIGHT_GRAY );
  157. for ( int i = 0; i < path.length - 1; i++ )
  158. {
  159. if ( i < firstIndexTrue( ) )
  160. g.setColor( new Color( 127, 255, 212 ) );
  161. else
  162. g.setColor( Color.LIGHT_GRAY );
  163. g.fillRect( startX - 2, startY + 130 + (65 * i), 5, 25);
  164. }
  165.  
  166. // middle vertical lines
  167. g.setColor( Color.LIGHT_GRAY );
  168. for ( int i = 0; i < path.length - 1; i++ )
  169. {
  170. if ( i >= firstIndexTrue( ) && i < lastIndexTrue( ) )
  171. g.setColor( new Color( 127, 255, 212 ) );
  172. else
  173. g.setColor(Color.lightGray);
  174. g.fillRect(startX + 148, startY + 130 + (65 * i), 5, 25);
  175. }
  176.  
  177. // right vertical lines
  178. g.setColor(Color.lightGray);
  179. for ( int i = 0; i < path.length; i++ )
  180. {
  181. if ( i >= lastIndexTrue( ) )
  182. g.setColor( new Color( 127, 255, 212 ) );
  183. else
  184. g.setColor( Color.LIGHT_GRAY );
  185. g.fillRect( startX + 248, startY + 110 + (65 * i), 5, 65 );
  186. }
  187.  
  188. // left horizontal lines
  189. g.setColor( Color.LIGHT_GRAY );
  190. for ( int i = 0; i < path.length; i++ )
  191. {
  192. if ( i == firstIndexTrue( ) )
  193. g.setColor( new Color( 127, 255, 212 ) );
  194. else
  195. g.setColor( Color.LIGHT_GRAY );
  196. g.fillRect( startX + 50, startY + 110 + (65 * i), 50, 5 );
  197. }
  198.  
  199. // 2nd right rectangles
  200. g.setColor(Color.lightGray);
  201. for ( int i = 0; i < path.length; i++ )
  202. {
  203. if ( i >= firstIndexTrue( ) && i <= lastIndexTrue( ) )
  204. g.setColor( new Color( 127, 255, 212 ) );
  205. else
  206. g.setColor( Color.LIGHT_GRAY );
  207. g.fillRoundRect( startX + 100, startY + 90 + (65 * i), 100, 40, 10, 10 );
  208. }
  209.  
  210. // right horizontal lines
  211. g.setColor( Color.LIGHT_GRAY );
  212. for ( int i = 0; i < path.length; i++ )
  213. {
  214. if ( i == lastIndexTrue( ) )
  215. g.setColor( new Color( 127, 255, 212 ) );
  216. else
  217. g.setColor( Color.LIGHT_GRAY );
  218. g.fillRect( startX + 200, startY + 110 + (65 * i), 48,5 );
  219. }
  220.  
  221. g.setColor( Color.BLACK );
  222. g.drawString( "switch(test)", startX - 35, startY + 50 );
  223. g.drawString( "case(0) ?", startX - 35, startY + 115 );
  224. g.drawString( "case(1) ?", startX - 35, startY + 180 );
  225. g.drawString( "case(2) ?", startX - 35, startY + 245 );
  226. g.drawString( "case(3) ?", startX - 35, startY + 310 );
  227. g.drawString( "case(4) ?", startX - 35, startY + 375 );
  228. g.drawString( "default", startX - 35, startY + 440 );
  229.  
  230. g.drawString( "Value is 0", startX + 115, startY + 115 );
  231. g.drawString( "Value is 1", startX + 115, startY + 180 );
  232. g.drawString( "Value is 2", startX + 115, startY + 245 );
  233. g.drawString( "Value is 3", startX + 115, startY + 310 );
  234. g.drawString( "Value is 4", startX + 115, startY + 375 );
  235. g.drawString( "Not a valid value", startX + 105, startY + 440 );
  236.  
  237. g.drawString( "Continue", startX + 225, startY + 505 );
  238.  
  239. g.setFont( new Font( "Serif", Font.BOLD, 18 ) );
  240. g.setColor( Color.RED );
  241. g.drawString( "Value of test is " + current, startX + 110, startY + 50 );
  242.  
  243. }
  244. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement