This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!

Display class

By: jcdj1996 on Feb 7th, 2013  |  syntax: Java  |  size: 4.78 KB  |  views: 32  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  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. }
clone this paste RAW Paste Data