Java Prmanual
Java Prmanual
GUIDELINES TO STUDENTS
1. Equipment in the lab for the use of student community. Students need to maintain a proper
decorum in the computer lab. Students must use the equipment with care. Any damage is caused
is punishable.
3. Students are supposed to occupy the systems allotted to them and are not supposed to talk or
make noise in the lab.
4. Students are required to carry their observation book and lab records with completed exercises
while entering the lab.
1
2. LAB OBJECTIVE
To introduce Java compiler and eclipse platform.
To make the student learn an object oriented way of solving problems using java.
To make the students to write programs using multithreading concepts and handle
exceptions.
To make the students to write programs that connects to a database and be able to
perform various operations.
To make the students to create the Graphical User Interface using Applets, AWT
Components & Swing Components.
3. LAB OUTCOME
Able to use Java compiler and eclipse platform to write and execute java program.
2
INDEX
S.No. Name of the Program Page No.
1 Week1 :
Use eclipse or Netbean platform and acquaint with the various menus,
create a test project, add a test class and run it see how you can use auto
suggestions, auto fill. Try code formatter and code refactoring like
renaming variables, methods and classes. Try debug step by step with a
5
small program of about 10 to 15 lines which contains at least one if else
condition and a for loop.
2 Week 2 :
Write a Java program that works as a simple calculator. Use a grid layout
to arrange buttons for the digits and for the +, -,*, % operations. Add a text 7
field to display the result. Handle any possible exceptions like divide by
zero.
3 Week 3 :
b) Develop an Applet that receives an integer in one text field & compute 11
its factorial value & returns it in another text filed when the button
“Compute” is clicked
4. Week 4 :
5 Week 5 :
6 Week 6 :
20
Write a java program that connects to a database using JDBC and does
3
add, deletes, modify and retrieve operations
7 Week 7 : 27
Write a java program that simulates a traffic light. The program lets the
user select one of three lights: red, yellow, or green with radio buttons. On
selecting a button, an appropriate message with “stop” or “ready” or “go”
should appear above the buttons in a selected color. Initially there is no
message shown.
8 Week 8 : 32
Write a java program to create an abstract class named Shape that contains
two integers and an empty method named printArea(). Provide three
classes named Rectangle, Triangle and Circle such that each one of the
classes extends the class Shape. Each one of the classes contain only the
method printArea( ) that prints the area of the given shape.
9 Week 9 :
34
Suppose that a table named Table.txt is stored in a text file. The first line
in the file header and the remaining lines correspond to row in the table.
The elements are separated by commas. Write a Java program to display
the table using labels in grid layout.
10 Week 10 : 36
Write a Java program that handles all mouse events and shows the event
name at the center of the window when a mouse event is fired. (Use
adapter classes).
11 Week 11 : 39
Write a java program that loads names and phone numbers from a text file
where the data is organized as one line per record and each field in a
record are separated by a tab (\t).it takes a name or phone number as input
and prints the corresponding other value from the hash table(hint: use hash
tables)
12 Week 12 : 42
Implement the above program with database instead of a text file.
13 Week 13 :
47
Write a java program that takes tab separated data (one record per line)
from a text file and inserts them into a database
14 Week 14 : 51
Write a java program that prints the meta-data of a given table.
4
Solutions:-
1. Use eclipse or Netbean platform and acquaint with the various menus, create a test
project, add a test class and run it see how you can use auto suggestions, auto fill. Try
code formatter and code refactoring like renaming variables, methods and classes. Try
debug step by step with a small program of about 10 to 15 lines which contains at least
one if else condition and a for loop.
Program:-
public class Prog1
{
}
}
}
Compile:-
D:>javac Prog1.java
Run:-
D:>java Prog1
5
Output:-
In Netbeans IDE:-
In Command Prompt:-
6
2. Write a Java program that works as a simple calculator. Use a grid layout to arrange
buttons for the digits and for the +, -,*, % operations. Add a text field to display the result.
Handle any possible exceptions like divide by zero.
Program:-
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//<applet code=Calculator height=300 width=200></applet>
public class Calculator extends JApplet
{
public void init()
{
CalculatorPanel calc=new CalculatorPanel();
getContentPane().add(calc);
}
}
class CalculatorPanel extends JPanel implements ActionListener
{
JButton n1,n2,n3,n4,n5,n6,n7,n8,n9,n0,plus,minus,mul,div,dot,equal;
static JTextField result=new JTextField("0",45);
static String lastCommand=null;
JOptionPane p=new JOptionPane();
double preRes=0,secVal=0,res;
private static void assign(String no)
{
if((result.getText()).equals("0"))
result.setText(no);
else if(lastCommand=="=")
{
result.setText(no);
lastCommand=null;
else
result.setText(result.getText()+no);
public CalculatorPanel()
{
setLayout(new BorderLayout());
result.setEditable(false);
result.setSize(300,200);
add(result,BorderLayout.NORTH);
panel.setLayout(new GridLayout(4,4));
7
n7=new JButton("7");
panel.add(n7);
n7.addActionListener(this);
n8=new JButton("8");
panel.add(n8);
n8.addActionListener(this);
n9=new JButton("9");
panel.add(n9);
n9.addActionListener(this);
div=new JButton("/");
panel.add(div);
div.addActionListener(this);
n4=new JButton("4");
panel.add(n4);
n4.addActionListener(this);
n5=new JButton("5");
panel.add(n5);
n5.addActionListener(this);
n6=new JButton("6");
panel.add(n6);
n6.addActionListener(this);
mul=new JButton("*");
panel.add(mul);
mul.addActionListener(this);
n1=new JButton("1");
panel.add(n1);
n1.addActionListener(this);
n2=new JButton("2");
panel.add(n2);
n2.addActionListener(this);
n3=new JButton("3");
panel.add(n3);
n3.addActionListener(this);
minus=new JButton("-");
panel.add(minus);
minus.addActionListener(this);
dot=new JButton(".");
panel.add(dot);
dot.addActionListener(this);
n0=new JButton("0");
panel.add(n0);
n0.addActionListener(this);
equal=new JButton("=");
panel.add(equal);
equal.addActionListener(this);
plus=new JButton("+");
panel.add(plus);
plus.addActionListener(this);
add(panel,BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent ae)
8
{
if(ae.getSource()==n1) assign("1");
else if(ae.getSource()==n2) assign("2");
else if(ae.getSource()==n3) assign("3");
else if(ae.getSource()==n4) assign("4");
else if(ae.getSource()==n5) assign("5");
else if(ae.getSource()==n6) assign("6");
else if(ae.getSource()==n7) assign("7");
else if(ae.getSource()==n8) assign("8");
else if(ae.getSource()==n9) assign("9");
else if(ae.getSource()==n0) assign("0");
else if(ae.getSource()==dot)
{
if(((result.getText()).indexOf("."))==-1)
result.setText(result.getText()+".");
}
else if(ae.getSource()==minus)
{
preRes=Double.parseDouble(result.getText());
lastCommand="-";
result.setText("0");
}
else if(ae.getSource()==div)
{
preRes=Double.parseDouble(result.getText());
lastCommand="/";
result.setText("0");
}
else if(ae.getSource()==equal)
{
secVal=Double.parseDouble(result.getText());
if(lastCommand.equals("/"))
res=preRes/secVal;
else if(lastCommand.equals("*"))
res=preRes*secVal;
else if(lastCommand.equals("-"))
res=preRes-secVal;
else if(lastCommand.equals("+"))
res=preRes+secVal;
result.setText(" "+res);
lastCommand="=";
}
else if(ae.getSource()==mul)
{
preRes=Double.parseDouble(result.getText());
lastCommand="*";
result.setText("0");
}
else if(ae.getSource()==plus)
{
preRes=Double.parseDouble(result.getText());
lastCommand="+";
9
result.setText("0");
}
}
}
Output:-
1
3. a) Develop an applet that displays a simple message.
Program:-
import java.awt.*;
import java.applet.*;
Output:-
1
3.b) Develop an Applet that receives an integer in one text field & compute its factorial
value & returns it in another text filed when the button “Compute” is clicked.
Program:-
import java.awt.*;
import java.lang.String;
import java.awt.event.*;
import java.applet.Applet;
String str;
Button b0;
TextField t1,t2;
Label l1;
p.setLayout(new GridLayout());
add(t1=new TextField(20));
add(t2=new TextField(20));
add(b0=new Button("compute"));
b0.addActionListener(this);
int i,n,f=1;
n=Integer.parseInt(t1.getText());
1
for(i=1;i<=n;i++)
f=f*i;
t2.setText(String.valueOf(f));
repaint();
Output:-
1
4. Write a program that creates a user interface to perform integer divisions. The user
enters two numbers in the text fields, Num1 and Num2. The division of Num1 and Num2 is
displayed in the Result field when the Divide button is clicked. If Num1 or Num2 were not
an integer, the program would throw a NumberFormatException. If Num2 were Zero, the
program would throw an Arithmetic Exception Display the exception in a message dialog
box.
Program:-
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Add1 extends Applet implements ActionListener
{
String msg;
TextField num1, num2, res;
Label l1, l2, l3;
Button div;
public void init()
{
l1 = new Label("Number 1");
l2 = new Label("Number 2");
l3 = new Label("result");
num1 = new TextField(10);
num2 = new TextField(10);
res = new TextField(30);
div = new Button("DIV");
div.addActionListener(this);
add(l1);
add(num1);
add(l2);
add(num2);
add(l3);
add(res);
add(div);
}
1
int num2 = Integer.parseInt(s2);
if (num2 == 0)
{
msg = "Arithemetic Exception ";
repaint();
}
else if ((num1 < 0) || (num2 < 0))
{
msg = "NumberFormat Exception";
repaint();
}
else
{
int num3 = num1 / num2;
msg = String.valueOf(num3);
}
res.setText(msg);
}
}
public void paint(Graphics g)
{
//g.drawString(msg, 30, 70);
}
}
APPLET.HTML
<html>
<head>
</head>
<body>
</applet>*/
</body>
</html>
Output:-
1
1
5.) Write a java program that implements a multi-thread application that has three
threads. First thread generates random integer every 1 second and if the value is even,
second thread computes the square of the number and prints. If the value is odd, the third
thread will print the value of cube of the number.
Program:-
}
class SquareThread implements Runnable
{
Double num;
public void run()
{
try {
1
int i=0;
do{
i++;
if(num != null&&num %2 ==0)
{
System.out.println("t2--->square of "+num+"="+(num*num));
num = null;
}
Thread.sleep(1000);
}while(i<=5);
}
catch (Exception e)
{
e.printStackTrace();
}
}
1
}
catch (Exception e)
{
e.printStackTrace();
}
}
public Double getNum()
{
return num;
}
}
Output:-
1
6).Write a java program that connects to a database using JDBC and does add, deletes,
modify and retrieve operations?
Program:-
ConnectionUtil.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
try
Class.forName("com.mysql.jdbc.Connection");
connection = DriverManager.getConnection("jdbc:mysql://192.168.216.250:3306/vijju","root",
"root");
catch (ClassNotFoundException e)
e.printStackTrace();
catch (SQLException e)
e.printStackTrace();
return connection;
2
}
StudentDetails.java
this.st_id = st_id;
this.st_name = st_name;
this.st_mobile = st_mobile;
return st_id;
this.st_id = st_id;
return st_name;
2
this.st_name = st_name;
return st_mobile;
this.st_mobile = st_mobile;
Prog6.java
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
try
conn = ConnectionUtil.getConnection();
prog6.retrieveData(conn);
2
StudentDetails st1 = new StudentDetails(1, "GNIT", 23232323);
prog6.insertData(conn, st1);
prog6.insertData(conn, st2);
prog6.insertData(conn, st3);
prog6.retrieveData(conn);
prog6.deleteARow(conn,2);
prog6.retrieveData(conn);
prog6.retrieveData(conn);
} catch (SQLException e)
e.printStackTrace();
} finally
try {
conn.close();
} catch (SQLException e)
e.printStackTrace();
2
{
try {
pstmt.setLong(1, st_mobile);
pstmt.setLong(2, st_id);
//System.out.println(row);
} catch (SQLException e)
{ e.printStackTrace();
try
pstmt.setLong(1, st_id);
//System.out.println(row);
catch (SQLException e)
e.printStackTrace();
2
{
try
pstmt.setString(1,details.getSt_name());
pstmt.setLong(2, details.getSt_mobile());
pstmt.setLong(3, details.getSt_id());
//System.out.println(row);
catch (SQLException e)
e.printStackTrace();
try {
ResultSet rs = pstmt.executeQuery();
System.out.println("ST_ID\tST_NAME\t\tST_MOBILE");
while(rs.next())
System.out.println(rs.getString("st_id")+"\t"+rs.getString("st_name")+"\t\t"+rs.getString(
"st_mobile"));
2
}
catch (SQLException e)
e.printStackTrace();
Output:-
2
7) Write a java program that simulates a traffic light. The program lets the user select one
of three lights: red, yellow, or green with radio buttons. On selecting a button, an
appropriate message with “stop” or “ready” or “go” should appear above the buttons in a
selected color. Initially there is no message shown.
Program:-
TrafficSignal.java
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
Thread t;
Font f, f1;
int i = 0, a = 0, j = 0;
setBackground(Color.lightGray);
t = new Thread(this);
t.start();
2
try
Thread.sleep(1000);
catch (Exception e)
System.out.println(e);
a = 1;
repaint();
a = 2;
repaint();
else if (i == 0)//green
a = 3;
try
Thread.sleep(1000);
catch (Exception e)
2
{
System.out.println(e);
repaint();
run();
repaint();
setBackground(Color.lightGray);//ROAD
g.setColor(Color.black);//POLE UP
g.setColor(Color.black);//POLE DOWN
g.setColor(Color.red);//COUNTDOWN STOP
g.setFont(f);
2
if (a == 1)//REDSIGNAL
{
g.setColor(Color.red);
g.fillOval(150, 150, 50, 50);
if (a == 2)//YELLOWSIGNAL
g.setColor(Color.yellow);
if (a == 3)//GREENSIGNAL
{
g.setColor(Color.blue);//countdown
g.setFont(f);
g.setColor(Color.green);
int n1 = 4;
int n2 = 3;
3
int y3[] = {150, 100, 150};
TrafficSignal.html
<html>
<head>
</head>
<body>
/*<applet code="TrafficSignal.class" height=500 width=300></applet>*/
</body>
</html>
Output:-
3
8) Write a java program to create an abstract class named Shape that contains two integers
and an empty method named printArea(). Provide three classes named Rectangle, Triangle
and Circle such that each one of the classes extends the class Shape. Each one of the classes
contain only the method printArea( ) that prints the area of the given shape.
Program:-
void numberOfSides()
void numberOfSides()
void numberOfSides()
{
System.out.println("Hexagon has six sides");
}
}
class ShapeDemo
3
{
public static void main(String args[ ])
{
Trapezoid t=new Trapezoid();
Triangle r=new Triangle();
Hexagon h=new Hexagon();
Shape s;
s=t;
s.numberOfSides();
s=r;
s.numberOfSides();
s=h;
s.numberOfSides();
}
}
Output:-
3
9) Suppose that a table named Table.txt is stored in a text file. The first line in the file
header and the remaining lines correspond to row in the table. The elements are separated
by commas. Write a Java program to display the table using labels in grid layout.
Program:-
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.io.*;
int i=0;
int j=0,k=0;
JButton save;
JTable table1;
FileInputStream fis;
DataInputStream dis;
public Table1()
Container con=getContentPane();
con.setLayout(new BorderLayout());
try
3
while ((d=dis.readLine())!=null)
{
StringTokenizer st1=new StringTokenizer(d,",");
while (st1.hasMoreTokens())
{
for (j=0;j<4;j++)
{
data[i][j]=st1.nextToken();
System.out.println(data[i][j]);
} i+
+;
}
System.out.println (" ");
}
} catch (Exception e)
{
System.out.println ("Exception raised" +e.toString());
}
table1=new JTable(data,colHeads);
int v=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
int h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
JScrollPane scroll=new JScrollPane(table1,v,h);
con.add(scroll,BorderLayout.CENTER);
}
public static void main(String args[])
{
t.setBackground(Color.green);
t.setTitle("Display Data");
t.setSize(500,300);
t.setVisible(true);
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} }
Abc.txt:-
a,123,der,23
b,456,frg,45
Output:-
3
10. Write a Java program that handles all mouse events and shows the event name at the
center of the window when a mouse event is fired. (Use adapter classes).
3
Program:-
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
</applet>*/
int mx=0;
int my=0;
String msg="";
addMouseListener(this);
addMouseMotionListener(this);
mx=20;
my=40;
msg="Mouse Clicked";
repaint();
mx=30;
my=60;
msg="Mouse Pressed";
3
repaint();
mx=30;
my=60;
msg="Mouse Released";
repaint();
mx=40;
my=80;
msg="Mouse Entered";
repaint();
mx=40;
my=80;
msg="Mouse Exited";
repaint();
mx=me.getX();
my=me.getY();
3
repaint(); }
Output:-
11).Write a java program that loads names and phone numbers from a text file where the
data is organized as one line per record and each field in a record are separated by a tab (\
t).it takes a name or phone number as input and prints the corresponding other value from
3
the hash table(hint: use hash tables)
Program:-
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Set;
prog11.printTheData(hashData, "vbit");
prog11.printTheData(hashData, "123");
prog11.printTheData(hashData, "----");
if(hashData != null)
if(keys.contains(input))
4
{
output = hashData.get(input);
else
while(iterator.hasNext()) {
if(value.equals(input))
{
output = key;
break;
} } } }
System.out.println("Input given:"+input);
if(output != null)
{
System.out.println("Data found in HashTable:"+output);
}
else {
System.out.println("Data not found in HashTable");
} }
String>(); try {
hashData.put(details[0], details[1]);
} catch (FileNotFoundException e) {
4
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace(); }
return hashData; } }
HashTab.txt
vbit 123
abc 345
edrf 567
Output:-
file. Program:-
4
ConnectionUtil.Java
package LabProgs;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
try
Class.forName("com.mysql.jdbc.Connection");
connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test",
"root", "system");
catch (ClassNotFoundException e)
e.printStackTrace();
catch (SQLException e)
e.printStackTrace();
return connection;
Prog12.Java:-
package LabProgs;
import java.sql.Connection;
4
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Set;
try
conn = ConnectionUtil.getConnection();
prog12.printTheData(hashData, "GNIT");
prog12.printTheData(hashData, "26262626");
prog12.printTheData(hashData, "****");
catch (SQLExceptione)
e.printStackTrace();
finally
try
4
conn.close();
catch (SQLExceptione)
e.printStackTrace();
if(hashData != null)
Set<String>keys = hashData.keySet();
if(keys.contains(input)) {
output = hashData.get(input);
else
Iterator<String>iterator = keys.iterator();
while(iterator.hasNext()) {
if(value.equals(input)) {
output = key;
break;
} } } }
System.out.println("Input given:"+input);
if(output != null)
4
System.out.println("Data found in HashTable:"+output);
else
} }
try
PreparedStatementpstmt = conn.prepareStatement(query);
ResultSetrs = pstmt.executeQuery();
while(rs.next())
hashData.put(rs.getString("st_name"), rs.getString("st_mobile"));
catch (SQLExceptione)
e.printStackTrace();
return hashData;
}}
Output:-
4
13. Write a java program that takes tab separated data (one record per
line) from a text file and inserts them into a database.
Program:-
4
Prog11.txt
JNTU 65656565
OU 64646464
ConnectionUtil.Java
package LabProgs;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionUtil
{
Prog13.Java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Hashtable;
import java.util.Iterator;
4
Lab1 prog13 = new Lab1();
Hashtable<String, String>hashData = prog13.readFromFile("prog11.txt");
System.out.println("File data into Hashtable:\n"+hashData);
System.out.println("Student details table data before inserting file data:");
prog13.retrieveData(conn);
prog13.writeDataToDatabase(conn, hashData);
System.out.println("Student details table data after inserting file data:");
prog13.retrieveData(conn);
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
4
e.printStackTrace();
}
return ++id;
}
Output:-
5
14. Write a java program that prints the meta-data of a given table.
Program:-
5
ConnectionUtil.Java
package LabProgs;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionUtil
{
public static Connection getConnection() throws SQLException
{ Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Connection");
connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test",
"root", "system");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;
5
public static void main(String args[]) {
try {
conn = ConnectionUtil.getConnection();
prog14.printMetaData(conn, "student_details");
Statement statement;
try {
statement = conn.createStatement();
ResultSetMetaDatametaData = statement.executeQuery(query).getMetaData();
longcolSize = metaData.getColumnCount();
System.out.println("Columns are:");
for(inti=1;i<=colSize;i++) {
System.out.println(colName+"-->"+colType);
} catch (SQLException e) {
e.printStackTrace();
5
}
Output:-