TopButtonPanel.java

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

public class TopButtonPanel extends JPanel implements ActionListener {

private PaintBox owner; private JButton lineButton; private JButton rectButton; private JButton ovalButton; private JButton filledButton; private JLabel shape; private boolean filled = true;

public TopButtonPanel (PaintBox o) { owner = o;       setLayout(new GridLayout(1, 5));

lineButton = new JButton("Line"); lineButton.addActionListener(this); add(lineButton);

rectButton = new JButton("Rectangle"); rectButton.addActionListener(this); add(rectButton);

ovalButton = new JButton("Oval"); ovalButton.addActionListener(this); add(ovalButton);

filledButton = new JButton("Filled"); filledButton.addActionListener(this); add(filledButton);

shape = new JLabel("  Rectangle"); shape.setBackground(Color.white); shape.setForeground(Color.black); shape.setOpaque(true); shape.setBorder(BorderFactory.createBevelBorder( BevelBorder.LOWERED)); add(shape); }

public void actionPerformed(ActionEvent e) { Object obj = e.getSource;

if (obj == filledButton) { if (filled) { // filled true filled = false; owner.setFilled(filled); filledButton.setText("Not filled"); } else { filled = true; owner.setFilled(filled); filledButton.setText("Filled"); }       /* constants found in PaintPanel are used*/ } else if (obj == lineButton) { owner.setShape(PaintPanel.LINE); shape.setText("  Line"); } else if (obj == rectButton) { owner.setShape(PaintPanel.RECTANGLE); shape.setText("  Rectangle"); } else { // must be ovalButton owner.setShape(PaintPanel.OVAL); shape.setText("  Oval"); }   } } 