//   Scott DeRuiter     4/11/03
//   ArcControl.java
//   4 scroll bars that control height width starting point and m of angle

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

public class ArcControl extends JApplet implements AdjustmentListener   
{
	private DisplayPanel canvas;
	private JScrollBar width;
	private JScrollBar height;
	private JScrollBar startDeg;
	private JScrollBar endDeg;
	int widthof, heightof, startDegof, endDegof;

	public ArcControl ( )   
	{
		widthof = heightof = startDegof = endDegof = 60;
	} 

	public void init()
	{		
		canvas = new DisplayPanel();
		getContentPane().add ( canvas, BorderLayout.CENTER );

		width = new JScrollBar(JScrollBar.HORIZONTAL, 60, 5, 0, 400);
		width.addAdjustmentListener(this);
		getContentPane().add ( width, BorderLayout.NORTH );
		
		height = new JScrollBar(JScrollBar.VERTICAL, 60, 5, 0, 400);
		height.addAdjustmentListener(this);
		getContentPane().add ( height, BorderLayout.EAST );
	
		startDeg = new JScrollBar(JScrollBar.VERTICAL, 60, 5, 0, 360);
		startDeg.addAdjustmentListener(this);
		getContentPane().add ( startDeg, BorderLayout.WEST );
	
		endDeg = new JScrollBar(JScrollBar.HORIZONTAL, 60, 5, 0, 370);
		endDeg.addAdjustmentListener(this);
		getContentPane().add ( endDeg, BorderLayout.SOUTH );
	}

	class DisplayPanel extends JPanel   
	{

		public DisplayPanel ( )   
		{
			setBackground ( Color.black );
		}

		public void paintComponent(Graphics g )
		{
			super.paintComponent ( g );
			g.setColor(Color.blue);
			g.fillArc(30, 30, widthof, heightof, startDegof, endDegof); 
		}
	}

	public void adjustmentValueChanged( AdjustmentEvent e)
	{
        	widthof = width.getValue();
		heightof = height.getValue();
		startDegof = startDeg.getValue();
		endDegof = endDeg.getValue();
		canvas.repaint();
	}
}

Back to Lesson 30 Examples

Back to Java Main Page