/**
* @author Igor Kholodov, Bristol Community College
*
* <code>application</code> package is a namespace for the classes
* of the application.
*/
package application;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
import javax.swing.text.*;
/**
* <code>FrameTwoButtons</code> is the demo class for UI window
* with two buttons.
*/
public class FrameTwoButtons extends FrameApplication implements ActionListener
{
// ----- Data Attributes ----------
JButton mButChangeColor; // Button that changes background color
JButton mButQuit; // Quit button
JPanel mMainPanel;
Color mSystemColor;
// ----- Operations ----------
/**
* Class constructor takes care of all basic setup steps.
*/
public FrameTwoButtons(String aCaption)
{
super(aCaption);
setFrameDimension();
setMainPanel();
this.setVisible(true);
} // method: FrameTwoButtons
/**
* Sets the frame size
*/
private void setFrameDimension()
{
this.setSize(new Dimension(250, 100));
} // method: setFrameDimension
/**
* Confugures user interface components
*/
private void setMainPanel()
{
mMainPanel = new JPanel(); //central panel
this.getContentPane().add(mMainPanel);
//create and add buttons
mButChangeColor = new JButton("Change Color");
mButQuit = new JButton("Quit");
mButChangeColor.addActionListener(this);
mButQuit.addActionListener(this);
mMainPanel.add(mButChangeColor);
mMainPanel.add(mButQuit);
mSystemColor = mMainPanel.getBackground();
} // method: setMainPanel
/**
* Handles user clicks
*/
public void actionPerformed(ActionEvent event)
{
Object obj = event.getSource();
if (obj == mButChangeColor)
switchColors();
if (obj == mButQuit)
System.exit(0);
} // method: actionPerformed
/**
* Switches background color from original to green and back
*/
private void switchColors()
{
if (mSystemColor == mMainPanel.getBackground())
{
mMainPanel.setBackground(Color.green);
}
else
{
mMainPanel.setBackground(mSystemColor);
}
this.repaint();
} // method: switchColors
} // class: FrameTwoButtons