Advertisement
jcdj1996

Display class

Feb 7th, 2013
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.78 KB | None | 0 0
  1. package com.jcdj1996.final03;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Dimension;
  5. import java.awt.Graphics;
  6. import java.awt.GridLayout;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import javax.swing.*;
  10. import javax.swing.event.ChangeEvent;
  11. import javax.swing.event.ChangeListener;
  12.  
  13. import lejos.nxt.Sound;
  14.  
  15. public class Display implements ActionListener, ChangeListener{
  16.     static Robot r1 = new Robot();
  17.     static MoveSet m1 = new MoveSet();
  18.     static MyPanel p1 = new MyPanel();
  19.     static JFrame panel;
  20.     static JPanel contentPane;  //holds all other JPanels
  21.     static JPanel buttons;  //preprogrammed moves
  22.     static JPanel sliders;  //speed and steering
  23.     static JButton figure8; //triggers figure8
  24.     static JButton fireButton;  //fire from GUI
  25.     static JButton horn;    //Play horn
  26.     static JSlider speedSlide;  //Speed Slider
  27.     static JSlider steerSlide;  //Steering Slider
  28.    
  29.     public void init(){
  30.        
  31.         panel = new JFrame("Rover Controller");
  32.         panel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  33.        
  34.         // the box layout puts objects in a vertical column
  35.         contentPane = new JPanel();
  36.         contentPane.setLayout(new BoxLayout(contentPane,BoxLayout.PAGE_AXIS));
  37.         contentPane.setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
  38.         contentPane.setBackground(Color.blue);
  39.        
  40.         // Add content pane to frame
  41.         panel.setContentPane(contentPane);
  42.         contentPane.setLayout(new GridLayout(1,0));
  43.        
  44.         buttons = new JPanel();
  45.         buttons.setLayout(new BoxLayout(buttons,BoxLayout.PAGE_AXIS));
  46.         buttons.setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
  47.         buttons.setBackground(Color.WHITE);
  48.         buttons.setLayout(new GridLayout(0,1));
  49.         contentPane.add(buttons);
  50.        
  51.         sliders = new JPanel();
  52.         sliders.setLayout(new BoxLayout(sliders,BoxLayout.PAGE_AXIS));
  53.         sliders.setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
  54.         sliders.setBackground(Color.GREEN);
  55.         sliders.setLayout(new GridLayout(0,1));
  56.         contentPane.add(sliders);
  57.        
  58.         contentPane.add(new MyPanel()); //add paint surface (far right)
  59.        
  60.         // Size and then display the window.
  61.         panel.setSize(800,500);
  62.         panel.setLocation(300,100);
  63.         panel.setVisible(true);
  64.        
  65.         //Buttons
  66.         figure8 = new JButton("Figure Eight");
  67.         buttons.add(figure8);
  68.         figure8.addActionListener(this);
  69.        
  70.         fireButton = new JButton("Fire (trigger)");
  71.         buttons.add(fireButton);
  72.         fireButton.addActionListener(this);
  73.        
  74.         horn = new JButton("Horn (Button 3)");
  75.         horn.addActionListener(this);
  76.         buttons.add(horn);
  77.        
  78.         //Sliders
  79.         speedSlide = new JSlider(JSlider.VERTICAL, -720,720, 0);
  80.         speedSlide.addChangeListener(this);
  81.  
  82.         speedSlide.setMajorTickSpacing(180);
  83.         speedSlide.setPaintTicks(true);
  84.         speedSlide.setPaintLabels(true);
  85.         speedSlide.setSnapToTicks(true);
  86.         speedSlide.setName("Speed");
  87.         sliders.add(speedSlide);
  88.        
  89.         steerSlide = new JSlider(JSlider.HORIZONTAL,-10, 10, 0);
  90.         steerSlide.addChangeListener(this);
  91.  
  92.         steerSlide.setMajorTickSpacing(1);
  93.         steerSlide.setPaintTicks(true);
  94.         steerSlide.setPaintLabels(false);
  95.         steerSlide.setSnapToTicks(true);
  96.         sliders.add(steerSlide);
  97.     }
  98.  
  99.     public void actionPerformed(ActionEvent arg0) {
  100.         if(arg0.getSource()==figure8)
  101.         {
  102.             m1.figure8();   //activate figure 8
  103.         }
  104.         if(arg0.getSource()==fireButton)    //fire button is pressed
  105.         {
  106.             r1.fire();
  107.         }
  108.         if(arg0.getSource() == horn)
  109.         {
  110.             Sound.playTone(500, 500);   //play tone from robot speaker
  111.         }
  112.     }
  113.     public void stateChanged(ChangeEvent a) {
  114.         if(a.getSource()==speedSlide)
  115.         {
  116.             r1.setSpeed(speedSlide.getValue()*-1);      //drive motor is reversed, value must be flipped
  117.         }
  118.         if(a.getSource()==steerSlide)
  119.         {
  120.             r1.turn(steerSlide.getValue()); //turn to the value of the steering slider
  121.         }
  122.     }
  123.  
  124. }
  125. class MyPanel extends JPanel implements ActionListener{
  126.     private static final long serialVersionUID = 1L;
  127.     Timer timer1 = new Timer(10,this);
  128.     public static int xpos=45,ypos=45;
  129.     public MyPanel() {
  130.         setBorder(BorderFactory.createLineBorder(Color.black));
  131.         timer1.start();
  132.     }
  133.  
  134.     public Dimension getPreferredSize() {
  135.         return new Dimension(250,200);
  136.     }
  137.  
  138.     public void paintComponent(Graphics g) {
  139.         super.paintComponent(g);
  140.         //JStick graphics
  141.         g.setColor(Color.BLACK);
  142.         g.fillRect(0, 0, 1000, 1000);
  143.         if(final03.JStickAvail==false)
  144.         {
  145.             g.setColor(Color.BLUE);
  146.             g.drawString("No Joystick Found", 15,45);
  147.         }else{
  148.             g.setColor(Color.WHITE);
  149.             g.drawLine(50,0,50,100);    //grid for JS position
  150.             g.drawLine(0,50,100,50);
  151.             g.setColor(Color.RED);
  152.             g.fillOval(xpos, ypos, 10, 10); //circle for JS position
  153.             g.drawString("Joystick input", 15, 111);
  154.         }
  155.     }
  156.    
  157.     public void actionPerformed(ActionEvent arg0) {
  158.         repaint();  //repaint on timer
  159.     }
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement