This program will help you to understand:
- Using various Layouts in Applet
- Use of Threads to do simple 2D animations
- User defined Exception Handling (Exception generated when user clicks the button and the required text fields are kept empty)
Code:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.io.*;
/*
<applet code="BizzApp1.class" height=250 width=500>
</applet>
*/
class FieldZeroException extends Exception
{
String strE2;
FieldZeroException()
{
}
FieldZeroException(String strE1)
{
strE2=strE1;
}
public String toString()
{
return strE2+" TextField/s empty.";
}
}
public class BizzApp1 extends Applet implements Runnable,ActionListener,ItemListener
{
Panel p2,pn,ps;
Choice ch;
Label l1,l2,l3,l4,l5,l6,fl;
Button b1,b2,b3,b4,b5;
TextField tf1,tf2,tf3,tf4;
Frame f;
int x=-190,a=0,b=0,d=0;
double pm=0.15,tm=0.1,wm=0.05;
String str1,str2,str3,str4,str5,str6;
double sal,fsal;
public void init()
{
Thread t=new Thread(this);
t.start();
setLayout(new BorderLayout());
Color c1=new Color(253,210,154);
setBackground(c1);
Color c2=new Color(81,44,30);
setForeground(c2);
f=new Frame("BizzApp Version");
f.setSize(250,100);
Color cf1=new Color(225,186,143);
Color cf2=new Color(220,96,22);
f.setBackground(cf1);
f.setForeground(cf2);
fl=new Label("BizzApp v1.1");
Font flabel=new Font("Times New Roman",Font.BOLD,30);
fl.setFont(flabel);
f.setLayout(new FlowLayout(FlowLayout.CENTER));
f.add(fl);
p2=new Panel(new BorderLayout());
pn=new Panel(new GridLayout(5,2,0,10));
ps=new Panel(new FlowLayout(FlowLayout.CENTER));
ch=new Choice();
l1=new Label("BizzApp");
l2=new Label("ID:");
l3=new Label("Name:");
l4=new Label("Designation:");
l5=new Label("Salary:");
l6=new Label("Calculated Salary:");
b1=new Button("Calculate");
b2=new Button("Save");
b3=new Button("Reset");
b4=new Button("View");
b5=new Button("About");
tf1=new TextField(20);
tf2=new TextField(20);
tf3=new TextField(20);
tf4=new TextField(20);
tf4.setText("--------auto--------");
add("South",p2);
p2.add("North",pn);
p2.add("South",ps);
pn.add(l2);
pn.add(tf1);
pn.add(l3);
pn.add(tf2);
pn.add(l4);
pn.add(ch);
ch.add("Project Manager");
ch.add("Team Member");
ch.add("Work Man");
pn.add(l5);
pn.add(tf3);
pn.add(l6);
pn.add(tf4);
ps.add(b1);
ps.add(b2);
ps.add(b3);
ps.add(b4);
ps.add(b5);
try
{
File file1=new File("BizzApp.xls");
if(!file1.exists())
{
file1.createNewFile();
FileWriter fw1=new FileWriter("BizzApp.xls",true);
String header="ID\tName\tDesignation\tSalary\tBonus(%)\tCalculated Salary\n";
fw1.write(header);
fw1.close();
}
}
catch(Exception e)
{
}
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
ch.addItemListener(this);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we)
{
f.dispose();
}
});
}
public void itemStateChanged(ItemEvent ie)
{
}
public void run()
{
while(true)
{
for(int i=0;i<70;i++)
{
try
{
repaint();
Thread.sleep(250);
}
catch(Exception e)
{
}
}
x=-190;
}
}
public double getBonus()
{
Double bonus=0.0;
if(str3=="Project Manager")
bonus=(pm*100);
else if(str3=="Team Member")
bonus=(tm*100);
else if(str3=="Work Man")
bonus=(wm*100);
return bonus;
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==b1)
{
str3=ch.getSelectedItem();
str4=tf3.getText();
d=str4.length();
try
{
if(d==0)
{
String salEmpty="Salary";
throw new FieldZeroException(salEmpty);
}
else
{
sal=Double.parseDouble(str4);
if(str3=="Project Manager")
{
fsal=sal+(sal*pm);
}
else if(str3=="Team Member")
{
fsal=sal+(sal*tm);
}
else if(str3=="Work Man")
{
fsal=sal+(sal*wm);
}
String ans=String.valueOf(fsal);
tf4.setText(ans);
showStatus("Final Salary calculated with bonus of "+Math.round(((fsal-sal)/sal)*100)+"%.");
}
}
catch(FieldZeroException fze1)
{
showStatus(fze1.toString());
}
}
else if(ae.getSource()==b2)
{
str1=tf1.getText();
str2=tf2.getText();
str3=ch.getSelectedItem();
str4=tf3.getText();
str5=String.valueOf(this.getBonus());
str6=tf4.getText();
a=str1.length();
b=str2.length();
d=str4.length();
try
{
if(a==0 && b==0 && d==0)
{
String all="All";
throw new FieldZeroException(all);
}
else if(a==0 || b==0 || d==0)
{
String any="Any";
throw new FieldZeroException(any);
}
else
{
try
{
FileWriter fw2=new FileWriter("BizzApp.xls",true);
String row=str1+"\t"+str2+"\t"+str3+"\t"+str4+"\t"+str5+"\t"+str6+"\n";
fw2.write(row);
fw2.close();
showStatus("Saved Successfully.");
}
catch(Exception e)
{
}
}
}
catch(FieldZeroException fze2)
{
showStatus(fze2.toString());
}
}
else if(ae.getSource()==b3)
{
tf1.setText("");
tf2.setText("");
tf3.setText("");
tf4.setText("--------auto--------");
}
else if(ae.getSource()==b4)
{
try
{
Runtime.getRuntime().exec("cmd /c start BizzApp.xls");
}
catch(Exception e)
{
}
}
else if(ae.getSource()==b5)
{
f.setVisible(true);
}
}
public void paint(Graphics g)
{
String strHead=l1.getText();
Font f=new Font("Courier",Font.BOLD+Font.ITALIC,45);
g.setFont(f);
Color cg=new Color(91,74,38);
g.setColor(cg);
g.drawString(strHead,x,40);
x+=10;
}
}
import java.applet.*;
import java.awt.event.*;
import java.io.*;
/*
<applet code="BizzApp1.class" height=250 width=500>
</applet>
*/
class FieldZeroException extends Exception
{
String strE2;
FieldZeroException()
{
}
FieldZeroException(String strE1)
{
strE2=strE1;
}
public String toString()
{
return strE2+" TextField/s empty.";
}
}
public class BizzApp1 extends Applet implements Runnable,ActionListener,ItemListener
{
Panel p2,pn,ps;
Choice ch;
Label l1,l2,l3,l4,l5,l6,fl;
Button b1,b2,b3,b4,b5;
TextField tf1,tf2,tf3,tf4;
Frame f;
int x=-190,a=0,b=0,d=0;
double pm=0.15,tm=0.1,wm=0.05;
String str1,str2,str3,str4,str5,str6;
double sal,fsal;
public void init()
{
Thread t=new Thread(this);
t.start();
setLayout(new BorderLayout());
Color c1=new Color(253,210,154);
setBackground(c1);
Color c2=new Color(81,44,30);
setForeground(c2);
f=new Frame("BizzApp Version");
f.setSize(250,100);
Color cf1=new Color(225,186,143);
Color cf2=new Color(220,96,22);
f.setBackground(cf1);
f.setForeground(cf2);
fl=new Label("BizzApp v1.1");
Font flabel=new Font("Times New Roman",Font.BOLD,30);
fl.setFont(flabel);
f.setLayout(new FlowLayout(FlowLayout.CENTER));
f.add(fl);
p2=new Panel(new BorderLayout());
pn=new Panel(new GridLayout(5,2,0,10));
ps=new Panel(new FlowLayout(FlowLayout.CENTER));
ch=new Choice();
l1=new Label("BizzApp");
l2=new Label("ID:");
l3=new Label("Name:");
l4=new Label("Designation:");
l5=new Label("Salary:");
l6=new Label("Calculated Salary:");
b1=new Button("Calculate");
b2=new Button("Save");
b3=new Button("Reset");
b4=new Button("View");
b5=new Button("About");
tf1=new TextField(20);
tf2=new TextField(20);
tf3=new TextField(20);
tf4=new TextField(20);
tf4.setText("--------auto--------");
add("South",p2);
p2.add("North",pn);
p2.add("South",ps);
pn.add(l2);
pn.add(tf1);
pn.add(l3);
pn.add(tf2);
pn.add(l4);
pn.add(ch);
ch.add("Project Manager");
ch.add("Team Member");
ch.add("Work Man");
pn.add(l5);
pn.add(tf3);
pn.add(l6);
pn.add(tf4);
ps.add(b1);
ps.add(b2);
ps.add(b3);
ps.add(b4);
ps.add(b5);
try
{
File file1=new File("BizzApp.xls");
if(!file1.exists())
{
file1.createNewFile();
FileWriter fw1=new FileWriter("BizzApp.xls",true);
String header="ID\tName\tDesignation\tSalary\tBonus(%)\tCalculated Salary\n";
fw1.write(header);
fw1.close();
}
}
catch(Exception e)
{
}
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
ch.addItemListener(this);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we)
{
f.dispose();
}
});
}
public void itemStateChanged(ItemEvent ie)
{
}
public void run()
{
while(true)
{
for(int i=0;i<70;i++)
{
try
{
repaint();
Thread.sleep(250);
}
catch(Exception e)
{
}
}
x=-190;
}
}
public double getBonus()
{
Double bonus=0.0;
if(str3=="Project Manager")
bonus=(pm*100);
else if(str3=="Team Member")
bonus=(tm*100);
else if(str3=="Work Man")
bonus=(wm*100);
return bonus;
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==b1)
{
str3=ch.getSelectedItem();
str4=tf3.getText();
d=str4.length();
try
{
if(d==0)
{
String salEmpty="Salary";
throw new FieldZeroException(salEmpty);
}
else
{
sal=Double.parseDouble(str4);
if(str3=="Project Manager")
{
fsal=sal+(sal*pm);
}
else if(str3=="Team Member")
{
fsal=sal+(sal*tm);
}
else if(str3=="Work Man")
{
fsal=sal+(sal*wm);
}
String ans=String.valueOf(fsal);
tf4.setText(ans);
showStatus("Final Salary calculated with bonus of "+Math.round(((fsal-sal)/sal)*100)+"%.");
}
}
catch(FieldZeroException fze1)
{
showStatus(fze1.toString());
}
}
else if(ae.getSource()==b2)
{
str1=tf1.getText();
str2=tf2.getText();
str3=ch.getSelectedItem();
str4=tf3.getText();
str5=String.valueOf(this.getBonus());
str6=tf4.getText();
a=str1.length();
b=str2.length();
d=str4.length();
try
{
if(a==0 && b==0 && d==0)
{
String all="All";
throw new FieldZeroException(all);
}
else if(a==0 || b==0 || d==0)
{
String any="Any";
throw new FieldZeroException(any);
}
else
{
try
{
FileWriter fw2=new FileWriter("BizzApp.xls",true);
String row=str1+"\t"+str2+"\t"+str3+"\t"+str4+"\t"+str5+"\t"+str6+"\n";
fw2.write(row);
fw2.close();
showStatus("Saved Successfully.");
}
catch(Exception e)
{
}
}
}
catch(FieldZeroException fze2)
{
showStatus(fze2.toString());
}
}
else if(ae.getSource()==b3)
{
tf1.setText("");
tf2.setText("");
tf3.setText("");
tf4.setText("--------auto--------");
}
else if(ae.getSource()==b4)
{
try
{
Runtime.getRuntime().exec("cmd /c start BizzApp.xls");
}
catch(Exception e)
{
}
}
else if(ae.getSource()==b5)
{
f.setVisible(true);
}
}
public void paint(Graphics g)
{
String strHead=l1.getText();
Font f=new Font("Courier",Font.BOLD+Font.ITALIC,45);
g.setFont(f);
Color cg=new Color(91,74,38);
g.setColor(cg);
g.drawString(strHead,x,40);
x+=10;
}
}
No comments:
Post a Comment