// Scott DeRuiter 4/28/03
// MenuShape.java
// Illustrates Menus
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MenuShape extends JApplet
{
private JMenuItem Blue, Red, Gray;
private JMenuItem Circle, Square;
private JMenuItem Fill, Draw;
private int colorchoice = 1;
private boolean shapechoice = true;
private boolean fillchoice = true;
public MenuShape ( )
{
setBackground(Color.gray);
MyCanvas canvas = new MyCanvas();
setContentPane(canvas);
JMenuBar menuBar = new JMenuBar ( );
setJMenuBar(menuBar);
JMenu ColorMenu = new JMenu ( "SHAPE COLORS" );
Blue = new JMenuItem ( "BLUE" );
ColorMenu.add ( Blue );
Blue.addActionListener ( canvas );
ColorMenu.addSeparator ( );
Red = new JMenuItem ( "RED" );
ColorMenu.add ( Red );
Red.addActionListener ( canvas );
ColorMenu.addSeparator ( );
Gray = new JMenuItem ( "GRAY" );
ColorMenu.add ( Gray );
Gray.addActionListener ( canvas );
menuBar.add ( ColorMenu );
JMenu ShapeMenu = new JMenu ( "SHAPES" );
Circle = new JMenuItem ( "CIRCLE" );
ShapeMenu.add ( Circle );
Circle.addActionListener ( canvas );
ShapeMenu.addSeparator ( );
Square = new JMenuItem ( "SQUARE" );
ShapeMenu.add ( Square );
Square.addActionListener ( canvas );
menuBar.add ( ShapeMenu );
JMenu TypeMenu = new JMenu ( "FILL OR CLEAR" );
Fill = new JMenuItem ( "FILL" );
TypeMenu.add ( Fill );
Fill.addActionListener ( canvas );
TypeMenu.addSeparator ( );
Draw = new JMenuItem ( "CLEAR" );
TypeMenu.add ( Draw );
Draw.addActionListener ( canvas );
menuBar.add ( TypeMenu );
}
public Insets getInsets()
{
return new Insets(3,3,3,3);
}
class MyCanvas extends JPanel implements ActionListener
{
public void paintComponent (Graphics g)
{
super.paintComponent ( g );
if ( colorchoice == 1 )
g.setColor ( Color.blue );
else if ( colorchoice == 2 )
g.setColor ( Color.red );
else if ( colorchoice == 3 )
g.setColor ( Color.gray );
if ( shapechoice && fillchoice )
g.fillRect ( 80, 80, 320, 320 );
else if ( !shapechoice && fillchoice )
g.fillOval ( 80, 80, 320, 320 );
else if ( shapechoice && !fillchoice )
g.drawRect ( 80, 80, 320, 320 );
else if ( !shapechoice && !fillchoice )
g.drawOval ( 80, 80, 320, 320 );
}
public void actionPerformed ( ActionEvent e )
{
if ( e.getSource ( ) == Blue )
colorchoice = 1;
else if ( e.getSource ( ) == Red )
colorchoice = 2;
else if ( e.getSource ( ) == Gray )
colorchoice = 3;
else if ( e.getSource ( ) == Square )
shapechoice = true;
else if ( e.getSource ( ) == Circle )
shapechoice = false;
else if ( e.getSource ( ) == Fill )
fillchoice = true;
else if ( e.getSource ( ) == Draw )
fillchoice = false;
repaint ( );
}
}
}
Back to Lesson 31 Examples
Back to Java Main Page