Select a Chapter: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Back to the Main Page
Chapter Ten listings: 12 classes

import java.awt.Graphics2D;

public class Painter extends javax.swing.JFrame  
{
     public Painter()
     {    super ("Wysiwyg Car Rentals");  // put the title on it
          addWindowListener (new Closer());
          setSize (760, 600);   // 760 pixels wide, 600 pixels tall
          setVisible (true);    // make it visible to the user
          repaint();            // update and paint
     }    //======================


     /** Draw a pattern on the frame's drawing area. */

     public void paint (java.awt.Graphics g)  
     {    Graphics2D page = (Graphics2D) g;
          page.drawString ("pattern", 10, 40);
          for (int depth = 40; depth < 580; depth += 5)
          {     page.draw (new java.awt.geom.Line2D.Double (depth, 
                          depth, depth + 30, depth));  // horizontal
          }
     }    //======================
}   


class PainterApp
{
     /** Create and initialize the JFrame. */

     public static void main (String[ ] args) 
     {    new Painter();
     }    //======================
}     


import java.awt.event.WindowListener;
import java.awt.event.WindowEvent;

public class Closer implements WindowListener 
{
     /** Enable the closer icon to terminate the program. */

     public void windowClosing (WindowEvent ev) 
     {    System.exit (0);
     }    //======================


     public void windowActivated (WindowEvent ev)     { }
     public void windowDeactivated (WindowEvent ev)   { }
     public void windowIconified (WindowEvent ev)     { }
     public void windowDeiconified (WindowEvent ev)   { }
     public void windowOpened (WindowEvent ev)        { }
     public void windowClosed (WindowEvent ev)        { }
}     


class CarRentalApp
{
     /** Create and initialize the JFrame. */

     public static void main (String[ ] args) 
     {    new CarRentalView();
     }    //======================
}


import javax.swing.*;
import java.awt.event.*;

public class Gooey extends JPanel
{
     private JTextField itsInput = new JTextField (15);
     private JTextArea itsOutput;
     private String itsData = "";


     public Gooey (int rows, int columns)
     {    this.add (new JLabel ("entry:"));
          itsInput.addActionListener (new TextFieldAL());
          this.add (itsInput);

          JButton button = new JButton ("delete first character");
          button.addActionListener (new ButtonAL());
          this.add (button);

          itsOutput = new JTextArea (rows, columns);
          this.add (new JScrollPane (itsOutput));
     }    //======================


     private class TextFieldAL implements ActionListener
     {    public void actionPerformed (ActionEvent ev)
          {    itsData += itsInput.getText();
               itsInput.setText ("");
               itsOutput.append (itsData + "\n");
          }
     }    //======================


     private class ButtonAL implements ActionListener
     {    public void actionPerformed (ActionEvent ev)
          {    if ( ! itsData.equals (""))
                    itsData = itsData.substring (1); 
               itsOutput.append (itsData + "\n");
          }
     }    //======================
}     


class GooeyApp
{
     public static void main (String[] args)
     {    JOptionPane.showMessageDialog (null, new Gooey (8, 20));
          System.exit (0);
     }    //======================
}


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class CarRentalView extends JFrame  
{
     public CarRentalView()
     {    super ("Wysiwyg Car Rentals");  // put the title on it
          this.addWindowListener (new Closer());  // enable closing
          this.setSize (760, 600);   // cover most of the screen
          this.init();
          setVisible (true);         // make it visible to the user
     }    //======================


     public void init()  
     {    Container content = this.getContentPane();
          content.setLayout (null);
          content.add (subViewOne());
          content.add (subViewTwo());
          content.add (subViewThree());
          content.add (subViewFour());
          content.add (subViewFive());
     }    //======================


// CarRentalView class, part 2

     public static final double PRICE_PER_DAY = 30.00;
     /////////////////////////////////
     private JTextField itsDaysRented = new JTextField ("1");
     private JLabel itsBaseCost = new JLabel ("" + PRICE_PER_DAY);


     private JPanel subViewOne() 
     {    JPanel panel = new JPanel();
          panel.setBounds (10, 25, this.getWidth() - 20, 40);

          panel.add (new JLabel ("Enter days rented:"));
          this.itsDaysRented.addActionListener (new DaysRentedAL());  
          panel.add (this.itsDaysRented);
          panel.add (new JLabel ("The base cost is:"));
          panel.add (this.itsBaseCost);

          return panel;
     }    //======================


     private class DaysRentedAL implements ActionListener
     {
          public void actionPerformed (ActionEvent ev)
          {    int d = Integer.parseInt (itsDaysRented.getText());
               itsBaseCost.setText ("" + (d - d / 7) * PRICE_PER_DAY);
          }
     }    //======================


// CarRentalView class, part 3

     private CarRentalModel itsModel = new CarRentalModel();
     private JTextField itsCustomerName = new JTextField (18);
     private JTextField itsCreditCard = new JTextField (12);


     private JPanel subViewTwo()
     {    JPanel panel = new JPanel();
          panel.setBounds (10, 75, this.getWidth() - 20, 40);

          JButton clearButton = new JButton ("Clear");
          clearButton.setMnemonic ('c');
          clearButton.addActionListener (new ClearButtonAL());
          panel.add (clearButton);

          JButton submitButton = new JButton ("Submit");
          submitButton.setMnemonic ('s');
          submitButton.addActionListener (new SubmitButtonAL());
          panel.add (submitButton);

          panel.add (new JLabel ("Customer name:"));
          panel.add (this.itsCustomerName);
          panel.add (new JLabel ("Credit card:"));
          panel.add (this.itsCreditCard);

          return panel;
     }    //======================


     private class ClearButtonAL implements ActionListener
     {
          public void actionPerformed (ActionEvent ev)
          {    CarRentalView.this.itsCustomerName.setText("");
               CarRentalView.this.itsCreditCard.setText("");
          }
     }    //======================


     private class SubmitButtonAL implements ActionListener
     {
          public void actionPerformed (ActionEvent ev)
          {    itsModel.add (itsCustomerName.getText() + "  "
                           + itsCreditCard.getText());
          }
     }    //======================


// CarRentalView class, part 4

     private static String[] months = {"January", "February", 
            "March", "April", "May", "June", "July", "August", 
            "September", "October", "November", "December"};
     private static String[] days = {"01", "02", "03", "04", "05", 
            "06", "07", "08", "09", "10", "11", "12", "13", "14",
            "15", "16", "17", "18", "19", "20", "21", "22", "23", 
            "24", "25", "26", "27", "28", "29", "30", "31"};
     private static String[] hours = {"7am", "8am", "9am", "10am",
            "11am", "noon", "1pm", "2pm", "3pm", "4pm", "5pm"};


// CarRentalView class, part 5

     private JComboBox itsStartMonth = new JComboBox (months);
     private JComboBox itsStartDay   = new JComboBox (days);
     private JComboBox itsStartHour  = new JComboBox (hours);
     private JComboBox itsEndMonth   = new JComboBox (months);
     private JComboBox itsEndDay     = new JComboBox (days);
     private JComboBox itsEndHour    = new JComboBox (hours);


     public JPanel subViewThree()
     {    JPanel panel = new JPanel();
          panel.setBounds (10, 125, this.getWidth() - 20, 40);

          panel.add (new Label ("starting month/day/hour:"));
          itsStartMonth.addActionListener (new StartMonthAL());
          panel.add (itsStartMonth);
          panel.add (itsStartDay);
          itsStartHour.addActionListener (new StartHourAL());
          panel.add (itsStartHour);

          return panel;
     }    //======================


     public JPanel subViewFour()
     {    JPanel panel = new JPanel();
          panel.setBounds (10, 175, this.getWidth() - 20, 40);

          panel.add (new Label ("ending month/day/hour:"));
          panel.add (itsEndMonth);
          panel.add (itsEndDay);
          panel.add (itsEndHour);

          return panel;
     }    //======================


     private class StartMonthAL implements ActionListener
     {    public void actionPerformed (ActionEvent ev)
          {    itsEndMonth.setSelectedIndex
                          (itsStartMonth.getSelectedIndex());
          }
     }    //======================


     private class StartHourAL implements ActionListener
     {    public void actionPerformed (ActionEvent ev)
          {    itsEndHour.setSelectedIndex 
                         (itsStartHour.getSelectedIndex());
          }
     }    //======================

// CarRentalView class, part 6 (completed)

     private JCheckBox itsManual = new JCheckBox ("manual", false);
     private JCheckBox itsAir = new JCheckBox ("air cond", true);
     private JCheckBox itsCD = new JCheckBox ("CD player", true);
     private String itsVehicle = "compact";   // the default choice 


     public JPanel subViewFive()
     {    JPanel panel = new JPanel();
          panel.setBounds (10, 225, this.getWidth() - 20, 40);

          panel.add (itsManual);
          panel.add (itsAir);
          panel.add (itsCD);
          panel.add (new JLabel ("Choose one:"));

          ButtonGroup group = new ButtonGroup();
          ActionListener alis = new ButtonGroupAL();
          String[] text = {"compact", "full-size", "luxury", "SUV"};
          for (int k = 0;  k < text.length;  k++)
          {    JRadioButton car = new JRadioButton (text[k]);
               car.addActionListener (alis);
               group.add (car);
               panel.add (car);
          }

          return panel;
     }    //======================


     private class ButtonGroupAL implements ActionListener     
     {    
          public void actionPerformed (ActionEvent ev)
          {    itsVehicle = ((JRadioButton) ev.getSource()).getText();
          }
     }    //======================
}


public class CarRentalModel
{    public void add (String given)
     {    System.out.println ("Model got " + given);
     }    //=======================
}


import javax.swing.*;

public class AddInputs extends JApplet
{
     private JSlider itsInput = new JSlider (JSlider.HORIZONTAL);
     private JTextArea itsOutput = new JTextArea (40, 20);
     private int itsData = 0;


     public void init() 
     {    setVisible (true);
          java.awt.Container content = this.getContentPane();
          content.add (itsOutput);

          itsInput.addChangeListener (new SliderCL());
          itsInput.setToolTipText ("numbers ranging 0 to 100");
          content.add (itsInput);

          JButton show = new JButton ("show total so far");
          show.addActionListener (new ButtonAL());
          content.add (show);
     }    //======================


     private class ButtonAL 
                   implements java.awt.event.ActionListener
     {    
          public void actionPerformed (java.awt.event.ActionEvent ev)
          {    itsOutput.append ("\nTotal so far is " + itsData);
          }
     }    //======================


     private class SliderCL 
                   implements javax.swing.event.ChangeListener
     {
          public void stateChanged (javax.swing.event.ChangeEvent ev)
          {    itsOutput.append ("\nEntry: " + itsInput.getValue());
               itsData += itsInput.getValue();
          }
     }    //======================
}     


import javax.swing.*;
import java.awt.event.*;

public class Clock extends JLabel 
{
     private Timer itsTimer;
     private int itsMillis;  // milliseconds per activation
     private int itsCounter; // milliseconds since it was started


     public Clock (int millis)
     {    super ("0");       // create a JLabel saying "0"
          itsMillis = millis;
          itsTimer = new Timer (millis, new TimerAL());
     }    //======================


     public void start()
     {    itsCounter = 0;
          itsTimer.start();
     }    //======================


     public void stop()
     {    itsTimer.stop();
     }    //======================


     private class TimerAL implements java.awt.event.ActionListener
     {
          public void actionPerformed (java.awt.event.ActionEvent ev)
          {    Clock.this.itsCounter += itsMillis;
               Clock.this.setText("" + (Clock.this.itsCounter / 1000));
          }
     }    //======================
}


import java.awt.*;
import javax.swing.*;

public class Painter extends JFrame  
{
     private Timer itsTimer = new Timer (100, new TimerAL());


     public Painter()
     {    super ("Wysiwyg Car Rentals");
          addWindowListener (new Closer());
          setSize (760, 600);   // 760 pixels wide, 600 pixels tall
          setVisible (true);
          paint (getGraphics());
     }    //======================


     public void paint (Graphics page)
     {    page.drawString ("pattern", 10, 40);
          itsTimer.start();
     }    //=======================


     private class TimerAL implements java.awt.event.ActionListener
     {    
          private int depth = 40;

          public void actionPerformed (java.awt.event.ActionEvent ev)
          {    Graphics2D page = (Graphics2D) getGraphics();
               page.draw (new java.awt.geom.Line2D.Double (depth, 
                          depth, depth + 30, depth));  // horizontal
               depth += 5;
               if (depth >= 580)
                    itsTimer.stop();
          }
     }    //=======================
}


class Holder
{    private JLabel itsSound;
     private JLabel lab;


     private class MenuItemAL implements ActionListener
     {
          public void actionPerformed (ActionEvent ev)
          {    String choice = ((JMenuItem) ev.getSource()).getText();
               if (choice.equals ("dog"))
                    itsSound.setText ("woof");
               else if (choice.equals ("cat"))
                    itsSound.setText ("meow");
               else if (choice.equals ("fish"))
                    itsSound.setText ("burble");
               else if (choice.equals ("apple"))
                    itsSound.setText ("red");
               else if (choice.equals ("lemon"))
                    itsSound.setText ("yellow");
               else // unrecognized
                    itsSound.setText ("what?");
          }
     }    //=======================


     private class ClickML implements MouseListener
     {
          public void mouseEntered (MouseEvent ev)
          {    lab.setText ("enter " + ev.getX() + "," + ev.getY());
          }

          public void mouseExited (MouseEvent ev)
          {    lab.setText ("exit " + ev.getX() + "," + ev.getY());
          }

          public void mousePressed (MouseEvent ev)
          {    lab.setText ("press " + ev.getX() + "," + ev.getY());
          }

          public void mouseReleased (MouseEvent ev)
          {    lab.setText ("release " + ev.getX() + "," + ev.getY());
          }

          public void mouseClicked (MouseEvent ev)
          {    lab.setText ("click " + ev.getX() + "," + ev.getY());
          }
     }    //=======================
}

All information Copyright (c)1999 - Dr. William C. Jones, Jr.
Layout and Design Copyright © Psumonix, LLC. All Rights Reserved.