Exercise
to simulate a safe
exercisetosimulateasafe.java
// excercise to simulate a safe
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Mysafe extends Applet implements ActionListener
{
private Button button[];
private TextField text;
private Font f;
private Label label;
private String LockCode;
private String buffer=" ";//4
spaces
private String CodeSelection[];
private Panel panel1, panel2;
private static int resetCount=0;
private int numberTries=6; // to permanetley lock
the safe if this is exceeded
public void init()
{
// setBackground(Color.lightGray);
this.setLayout(new BorderLayout());
CodeSelection = new String[]{"5567","1234","2727","0123"};
//initialise the Lock Code of the safe to the
first code selection
LockCode = new String(CodeSelection[0]);
panel1 = new Panel();
add("North", panel1);
label = new Label(" CLOSED");
f=new Font("Courier",Font.BOLD,18);
label.setFont(f);
panel1.add(label); // add label to pane
label.setAlignment(Label.LEFT);// set label to
the left
//text field
text=new TextField(25);
panel1.add(text);
panel2 = new Panel();
add("Center",panel2);
//set gridLayout for panel2(int rows,int col,int
hgap,int vgap)
panel2.setLayout(new GridLayout(4,2,5,5));
button = new Button[13];
for (int i=0;i<10;i+=1)
{
// array buttons
button[i] = new Button(Integer.toString(i));
panel2.add(button[i]);
button[i].addActionListener(this);
}
button[10] = new Button("CLOSE");
button[10].setForeground(Color.red);
button[10].addActionListener(this);
button[11] = new Button("OPEN");
button[11].setForeground(Color.red);
button[11].addActionListener(this);
button[12] = new Button("NEW CODE");
button[12].setForeground(Color.red);
button[12].addActionListener(this);
// add buttons to the layout
panel2.add(button[10]);
panel2.add(button[11]);
panel2.add(button[12]);
}
//action
public void actionPerformed(ActionEvent e)
{
//checks if the button is pressed
String a,currentNumber;
// create a String buffer to manipulate the string
StringBuffer found = new StringBuffer(buffer);
int j,k;
for(j=0;j<10;j+=1)
{
if(e.getSource()==button[j])
{
// get the string representationof
the pressed button number
currentNumber=button[j].getLabel();
// JApplet uses getText() method
for(k=0;k<4;k+=1) // cycle through
the four numbers in the code
{
// check to see if the button
pressed matches a number in the code
if(currentNumber.equals(String.valueOf(LockCode.charAt(k))))
{
//replace method to insert
the matched number
found.replace(k,k+1,currentNumber);
}
}
numberTries-=1; // decrement the number
of tries
buffer = new String(found);
text.setText(buffer);
if(numberTries<1) // no more tries
{
label.setText("Alarm!Locked!");
text.setText("LOCKSMITH - RESET!!");
}
}
}
if(e.getSource()==button[10]) //close
{
label.setText("CLOSED");
buffer=" ";
text.setText(buffer); // set text to buffer
}
if(e.getSource()==button[11])//open
{
buffer=" ";
if(LockCode.equals(text.getText()))
{
label.setText("SAFE OPEN");
text.setText(buffer);
numberTries=6; // new tries
}
else
{
numberTries-=1;
text.setText(buffer);
if(numberTries<1) // no more tries
{
label.setText("ALARM!LOCKED!");
text.setText("LOCKSMITH- RESET");
}
}
}
if(e.getSource()==button[12]) // new code
{
resetCount+=1; // moves to the next safe
code
//cycling through the available safe combinatoins
in the code selection array
LockCode=CodeSelection[resetCount%4];
numberTries=6;
buffer=" ";
text.setText(buffer);
label.setText("CLOSED");
}
}
}//end
Related:
Do you have a Java Problem?
Ask It in The Java
Forum
Java Books
Java Certification,
Programming, JavaBean and Object Oriented Reference Books
Return to : Java
Programming Hints and Tips
All the site contents are Copyright © www.erpgreat.com
and the content authors. All rights reserved.
All product names are trademarks of their respective
companies.
The site www.erpgreat.com is not affiliated with or endorsed
by any company listed at this site.
Every effort is made to ensure the content integrity.
Information used on this site is at your own risk.
The content on this site may not be reproduced
or redistributed without the express written permission of
www.erpgreat.com or the content authors.
|