Bulb Test


BulbTest.java

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

class bulb implements ActionListener
{
   boolean on;
Color C;
   int x, y;
   int radius = 25;
   String name;

   public bulb()
   {
      C = Color.blue;
      on = true;
      x = 100;
      y = 100;
      name = "bulb";
   }

   public bulb(String name, int x, int y, Color C)
   {
      this.C = C;
      this.x = x;
      this.y = y;
      this.name = name;
      on = true;
   }

   public void draw(Graphics g)
   {
      if (on) g.setColor( C );
      else g.setColor(Color.black);
      g.fillOval(x-radius,y-radius,2*radius,2*radius);
   }

   public void change_state()
   {
      on = !on;
   }

   public String toString()
   {
      return "bulb " + name + "  " + on;
   }

   public void actionPerformed(ActionEvent e)
   {
      on = !on;
      System.out.println(this);
   }
}



public class BulbTest extends JFrame implements ActionListener 
{
   bulb left, right;
   JButton b1, b2;
   Canvas upper;
   JPanel lower;

   public BulbTest()
   {
      super("Bulb Test");
      b1 = new JButton("left");
      b2 = new JButton("right");
      left = new bulb("left",80,60,Color.yellow);
      right = new bulb("right",220,60,Color.green);
      b1.addActionListener(left);
      b2.addActionListener(right);
      b1.addActionListener(this);
      b2.addActionListener(this);               
      upper = new Canvas();
      upper.setPreferredSize(new Dimension(300,120));
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      //setPreferredSize(new Dimension(300,200));
      lower = new JPanel(new FlowLayout());
      lower.add(b1);
      lower.add(b2);

      getContentPane().add(upper);
      getContentPane().add(lower,BorderLayout.SOUTH);
      pack();
        
   }
   class Canvas extends JPanel
   {
      public void paintComponent(Graphics g)
      {
         super.paintComponent(g);
         left.draw(g);
         right.draw(g);

      }
   }


    public static void main(String[] args)
    {
      BulbTest app = new BulbTest();        
      app.setVisible(true);
    }    
    
    public void actionPerformed(ActionEvent e)
    {
       upper.repaint();        
    }    
}


Maintained by John Loomis, updated Mon Sep 30 20:46:26 2013