Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Homework 4: Ball Bouncer thingy
- Paul MacLean (MAC7537@calu.edu), Michael Gorse (GOR9632@calu.edu), Anthony Carrola (CAR3766@calu.edu)
- Group 8 (2^3)
- CET 350 - Technical Computer using Java
- */
- import java.io.*;
- import java.awt.*;
- import java.util.*;
- import java.lang.*;
- import java.awt.List;
- import java.awt.event.*;
- class Bounce extends Frame implements ActionListener,WindowListener
- {
- private class Vec2 {
- public int x;
- public int y;
- Vec2(int x, int y) {
- this.x = x;
- this.y = y;
- }
- }
- private class ClampedInt {
- private int min;
- private int max;
- public int value;
- ClampedInt(int defaultvalue, int min, int max) {
- this.min = min;
- this.max = max;
- this.value = defaultvalue;
- }
- public void setValue(int value) {
- this.value = Math.max(this.min, Math.min(this.max, value));
- }
- }
- private static final long serialVersionUID = 1L;
- private Vec2 Dir = new Vec2(1,1);
- private int Vel = 0;
- private ClampedInt Size = new ClampedInt(50, 10,100);
- private ClampedInt Speed = new ClampedInt(10, 0,50);
- private static int ButtonHeight = 20;
- private Canvas CanvasFrame = new Canvas();
- private Button RunButton = new Button("Run");
- private Button CircleButton = new Button("Circle");
- private Button TailButton = new Button("Tail");
- private Button ClearButton = new Button("Clear");
- private Button QuitButton = new Button("Quit");
- private Scrollbar SpeedBar = new Scrollbar(Scrollbar.HORIZONTAL, 50, 1, 2, 100);
- private Scrollbar SizeBar = new Scrollbar(Scrollbar.HORIZONTAL, 50, 0, 2, 100);
- private Label SpeedLabel = new Label("Speed");
- private Label SizeLabel = new Label("Size");
- Bounce() {
- Speed.setValue(900);
- System.out.println(Speed.value);
- Speed.setValue(5);
- System.out.println(Speed.value);
- Speed.setValue(-5);
- System.out.println(Speed.value);
- System.out.println(Dir.x);
- SpeedBar.setVisible(true);
- SpeedLabel.setAlignment(Label.CENTER);
- SpeedLabel.setVisible(true);
- RunButton.setVisible(true);
- CircleButton.setVisible(true);
- TailButton.setVisible(true);
- ClearButton.setVisible(true);
- QuitButton.setVisible(true);
- SizeBar.setVisible(true);
- SizeLabel.setAlignment(Label.CENTER);
- SizeLabel.setVisible(true);
- this.add(SpeedBar);
- this.add(SpeedLabel);
- this.add(RunButton);
- RunButton.addActionListener(this);
- this.add(CircleButton);
- CircleButton.addActionListener(this);
- this.add(TailButton);
- TailButton.addActionListener(this);
- this.add(ClearButton);
- this.add(QuitButton);
- this.add(SizeBar);
- this.add(SizeLabel);
- this.setLayout(null);
- this.setBounds(50, 50 , 800, 500);
- this.setVisible(true);
- this.setResizable(true);
- this.setTitle("");
- this.setMinimumSize(new Dimension(700, 400));
- this.addWindowListener(this);
- this.requestFocus();
- drawFrame();
- this.addComponentListener(new ComponentAdapter() {
- public void componentResized(ComponentEvent componentEvent) {
- drawFrame();
- }
- });
- }
- public void run_buttonclk()
- {
- if(RunButton.getLabel().equals("Run"))
- {
- RunButton.setLabel("Stop");
- }
- else
- RunButton.setLabel("Run");
- }
- public void tail_buttonclk()
- {
- if(TailButton.getLabel().equals("Tail"))
- {
- TailButton.setLabel("No-Tail");
- }
- else
- TailButton.setLabel("Tail");
- }
- public void circle_buttonclk()
- {
- if(CircleButton.getLabel().equals("Circle"))
- {
- CircleButton.setLabel("Square");
- }
- else
- CircleButton.setLabel("Circle");
- }
- public static void main(String[] args) throws IOException
- {
- new Bounce();
- }
- private void drawFrame() {
- int FRAME_X = this.getWidth();
- int FRAME_Y = this.getHeight();
- int ButtonSpace = (int) (0.05 * FRAME_X);
- int ButtonWidth = (int) (0.05 * FRAME_X);
- int NetBarWidth = (int) (0.175 * FRAME_X);
- int MenuElementYPos = FRAME_Y - 60;
- int LabelYPos = MenuElementYPos+20;
- SpeedBar.setBounds(ButtonSpace, MenuElementYPos, NetBarWidth, ButtonHeight);
- SpeedLabel.setBounds(ButtonSpace, LabelYPos, NetBarWidth, ButtonHeight);
- RunButton.setBounds(2*ButtonSpace+NetBarWidth, MenuElementYPos, ButtonWidth,ButtonHeight );
- CircleButton.setBounds(4*ButtonSpace+NetBarWidth, MenuElementYPos, ButtonWidth, ButtonHeight);
- TailButton.setBounds(6*ButtonSpace+NetBarWidth, MenuElementYPos, ButtonWidth, ButtonHeight);
- ClearButton.setBounds(8*ButtonSpace+NetBarWidth, MenuElementYPos, ButtonWidth, ButtonHeight);
- QuitButton.setBounds(10*ButtonSpace+NetBarWidth, MenuElementYPos, ButtonWidth, ButtonHeight);
- SizeBar.setBounds(12*ButtonSpace+NetBarWidth, MenuElementYPos, NetBarWidth, ButtonHeight);
- SizeLabel.setBounds(12*ButtonSpace+NetBarWidth, LabelYPos, NetBarWidth, ButtonHeight);
- }
- public void windowActivated(WindowEvent e) {
- }
- public void windowClosed(WindowEvent e) {
- System.exit(0);
- }
- public void windowClosing(WindowEvent e) {
- this.removeWindowListener(this);
- this.dispose();
- }
- public void windowDeactivated(WindowEvent e) {
- }
- public void windowDeiconified(WindowEvent e) {
- }
- public void windowIconified(WindowEvent e) {
- }
- public void windowOpened(WindowEvent e) {
- }
- public void actionPerformed(ActionEvent e) {
- Object click = e.getSource();
- if(click == RunButton)
- {
- run_buttonclk();
- }
- else if(click == TailButton)
- {
- tail_buttonclk();
- }
- else if(click == CircleButton)
- {
- circle_buttonclk();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement