Testbed2.java

Download testbed2.zip

See also

Capacitor.java
GridPanel.java


Testbed2.java

// Testbed2.java
import java.awt.*;
import java.awt.geom.*;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Testbed2 extends GridPanel
{
    Capacitor c1 = new Capacitor();
    JButton button;
    Testbed2()
    {
	button = new JButton("Rotate");
      	ButtonHandler handler = new ButtonHandler();
      	button.addActionListener( handler );
    }

   public void drawContent(Graphics g)
  {
	c1.draw(g);
  }

   // inner class for button event handling
   private class ButtonHandler implements ActionListener 
   {
      // handle button event
      public void actionPerformed( ActionEvent event )
      {
	double angle = c1.angle + 45.0;
	if (angle>=360.0) angle = 0.0;
	c1.setAngle(angle);
	repaint();
      } 
   } // end private inner class ButtonHandler

    public static void main( String args[] )
    {
	EventQueue.invokeLater(() ->
	    {
		Testbed2 panel = new Testbed2();
		JFrame application = new JFrame("Testbed2");
		JPanel bp = new JPanel();
		bp.add(panel.button);
		application.add(bp,BorderLayout.SOUTH);
		application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		application.add(panel);
		application.setSize(496,358);
		application.setVisible(true);
	});
    }
}


Maintained by John Loomis, updated Thu Feb 20 14:51:00 2020