Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.64 KB | None | 0 0
  1. /*
  2. * Homework 4: Ball Bouncer thingy
  3. Paul MacLean (MAC7537@calu.edu), Michael Gorse (GOR9632@calu.edu), Anthony Carrola (CAR3766@calu.edu)
  4. Group 8 (2^3)
  5. CET 350 - Technical Computer using Java
  6. */
  7.  
  8.  
  9. import java.io.*;
  10. import java.awt.*;
  11. import java.util.*;
  12. import java.lang.*;
  13. import java.awt.List;
  14. import java.awt.event.*;
  15.  
  16. class Bounce extends Frame implements ActionListener,WindowListener
  17. {
  18. private class Vec2 {
  19. public int x;
  20. public int y;
  21. Vec2(int x, int y) {
  22. this.x = x;
  23. this.y = y;
  24. }
  25. }
  26.  
  27. private class ClampedInt {
  28. private int min;
  29. private int max;
  30. public int value;
  31. ClampedInt(int defaultvalue, int min, int max) {
  32. this.min = min;
  33. this.max = max;
  34. this.value = defaultvalue;
  35. }
  36. public void setValue(int value) {
  37. this.value = Math.max(this.min, Math.min(this.max, value));
  38. }
  39. }
  40.  
  41. private static final long serialVersionUID = 1L;
  42.  
  43. private Vec2 Dir = new Vec2(1,1);
  44. private int Vel = 0;
  45. private ClampedInt Size = new ClampedInt(50, 10,100);
  46. private ClampedInt Speed = new ClampedInt(10, 0,50);
  47.  
  48. private static int ButtonHeight = 20;
  49.  
  50. private Canvas CanvasFrame = new Canvas();
  51.  
  52. private Button RunButton = new Button("Run");
  53. private Button CircleButton = new Button("Circle");
  54. private Button TailButton = new Button("Tail");
  55. private Button ClearButton = new Button("Clear");
  56. private Button QuitButton = new Button("Quit");
  57.  
  58. private Scrollbar SpeedBar = new Scrollbar(Scrollbar.HORIZONTAL, 50, 1, 2, 100);
  59. private Scrollbar SizeBar = new Scrollbar(Scrollbar.HORIZONTAL, 50, 0, 2, 100);
  60.  
  61. private Label SpeedLabel = new Label("Speed");
  62. private Label SizeLabel = new Label("Size");
  63.  
  64.  
  65.  
  66. Bounce() {
  67. Speed.setValue(900);
  68. System.out.println(Speed.value);
  69. Speed.setValue(5);
  70. System.out.println(Speed.value);
  71. Speed.setValue(-5);
  72. System.out.println(Speed.value);
  73.  
  74. System.out.println(Dir.x);
  75.  
  76.  
  77. SpeedBar.setVisible(true);
  78. SpeedLabel.setAlignment(Label.CENTER);
  79. SpeedLabel.setVisible(true);
  80. RunButton.setVisible(true);
  81. CircleButton.setVisible(true);
  82. TailButton.setVisible(true);
  83. ClearButton.setVisible(true);
  84. QuitButton.setVisible(true);
  85. SizeBar.setVisible(true);
  86. SizeLabel.setAlignment(Label.CENTER);
  87. SizeLabel.setVisible(true);
  88.  
  89. this.add(SpeedBar);
  90. this.add(SpeedLabel);
  91.  
  92. this.add(RunButton);
  93. RunButton.addActionListener(this);
  94.  
  95. this.add(CircleButton);
  96. CircleButton.addActionListener(this);
  97.  
  98. this.add(TailButton);
  99. TailButton.addActionListener(this);
  100.  
  101. this.add(ClearButton);
  102.  
  103. this.add(QuitButton);
  104.  
  105. this.add(SizeBar);
  106. this.add(SizeLabel);
  107.  
  108. this.setLayout(null);
  109. this.setBounds(50, 50 , 800, 500);
  110. this.setVisible(true);
  111. this.setResizable(true);
  112. this.setTitle("");
  113. this.setMinimumSize(new Dimension(700, 400));
  114. this.addWindowListener(this);
  115. this.requestFocus();
  116.  
  117.  
  118. drawFrame();
  119.  
  120. this.addComponentListener(new ComponentAdapter() {
  121. public void componentResized(ComponentEvent componentEvent) {
  122. drawFrame();
  123. }
  124. });
  125.  
  126.  
  127. }
  128.  
  129. public void run_buttonclk()
  130. {
  131. if(RunButton.getLabel().equals("Run"))
  132. {
  133. RunButton.setLabel("Stop");
  134. }
  135. else
  136. RunButton.setLabel("Run");
  137. }
  138.  
  139. public void tail_buttonclk()
  140. {
  141. if(TailButton.getLabel().equals("Tail"))
  142. {
  143. TailButton.setLabel("No-Tail");
  144. }
  145. else
  146. TailButton.setLabel("Tail");
  147. }
  148.  
  149. public void circle_buttonclk()
  150. {
  151. if(CircleButton.getLabel().equals("Circle"))
  152. {
  153. CircleButton.setLabel("Square");
  154. }
  155. else
  156. CircleButton.setLabel("Circle");
  157. }
  158.  
  159. public static void main(String[] args) throws IOException
  160. {
  161. new Bounce();
  162. }
  163.  
  164. private void drawFrame() {
  165. int FRAME_X = this.getWidth();
  166. int FRAME_Y = this.getHeight();
  167.  
  168. int ButtonSpace = (int) (0.05 * FRAME_X);
  169. int ButtonWidth = (int) (0.05 * FRAME_X);
  170. int NetBarWidth = (int) (0.175 * FRAME_X);
  171. int MenuElementYPos = FRAME_Y - 60;
  172. int LabelYPos = MenuElementYPos+20;
  173.  
  174.  
  175. SpeedBar.setBounds(ButtonSpace, MenuElementYPos, NetBarWidth, ButtonHeight);
  176. SpeedLabel.setBounds(ButtonSpace, LabelYPos, NetBarWidth, ButtonHeight);
  177.  
  178. RunButton.setBounds(2*ButtonSpace+NetBarWidth, MenuElementYPos, ButtonWidth,ButtonHeight );
  179. CircleButton.setBounds(4*ButtonSpace+NetBarWidth, MenuElementYPos, ButtonWidth, ButtonHeight);
  180. TailButton.setBounds(6*ButtonSpace+NetBarWidth, MenuElementYPos, ButtonWidth, ButtonHeight);
  181. ClearButton.setBounds(8*ButtonSpace+NetBarWidth, MenuElementYPos, ButtonWidth, ButtonHeight);
  182. QuitButton.setBounds(10*ButtonSpace+NetBarWidth, MenuElementYPos, ButtonWidth, ButtonHeight);
  183.  
  184. SizeBar.setBounds(12*ButtonSpace+NetBarWidth, MenuElementYPos, NetBarWidth, ButtonHeight);
  185. SizeLabel.setBounds(12*ButtonSpace+NetBarWidth, LabelYPos, NetBarWidth, ButtonHeight);
  186. }
  187.  
  188.  
  189.  
  190. public void windowActivated(WindowEvent e) {
  191.  
  192. }
  193.  
  194. public void windowClosed(WindowEvent e) {
  195. System.exit(0);
  196. }
  197.  
  198. public void windowClosing(WindowEvent e) {
  199. this.removeWindowListener(this);
  200. this.dispose();
  201. }
  202.  
  203. public void windowDeactivated(WindowEvent e) {
  204.  
  205. }
  206.  
  207. public void windowDeiconified(WindowEvent e) {
  208.  
  209. }
  210.  
  211. public void windowIconified(WindowEvent e) {
  212.  
  213. }
  214.  
  215. public void windowOpened(WindowEvent e) {
  216.  
  217. }
  218.  
  219. public void actionPerformed(ActionEvent e) {
  220.  
  221. Object click = e.getSource();
  222. if(click == RunButton)
  223. {
  224. run_buttonclk();
  225. }
  226. else if(click == TailButton)
  227. {
  228. tail_buttonclk();
  229. }
  230. else if(click == CircleButton)
  231. {
  232. circle_buttonclk();
  233. }
  234.  
  235.  
  236.  
  237. }
  238.  
  239. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement