Sie sind auf Seite 1von 233

JAVA

A Helpful Hand

Indus Institute of Technology & Engineering


MCA Department

ALL THE BEST

MCA-III Page 1
JAVA

Final programs (25) list which has to be


written in Lab observation book

Week 1:
1. Write a Java program that prints all real solutions to the quadratic equation ax2 + bx + c = 0.
Read in a, b, c and use the quadratic formula. If the discriminant b2 -4ac is negative, display a
message stating that there are no real solutions.

2. The Fibonacci sequence is defined by the following rule. The fist two values in the sequence
are 1 and 1. Every subsequent value is the run of the two values preceding it. Write a Java
program that uses both recursive and non recursive functions to print the nth value in the
Fibonacci sequence.

Week 2:

3. Write a Java program that prompts the user for an integer and then prints out all prime
numbers up to that. Integer.

4. Write a Java program to multiply two given matrices.

5. Write a Java Program that reads a line of integers, and then displays each integers, and the
sum of all the integers (use string tokenizer class)

Week 3:

6. Write a Java program that checks whether a given string is a palindrome or not. Ex: MADAM
is a palindrome.

7. Write a Java program for sorting a given list of names in ascending order.

8. Write a java program to make frequency count of words in a given text.

Week 4:

9. Write a Java program that reads on file name from the user then displays information about
whether the file exists, whether the file is readable, whether the file is writable, the type of file
and the length of the file in bytes.

10. Write a Java program that reads a file and displays a file and displays the file on the screen,
with a line number before each line.

11. Write a Java program that displays the number of characters, lines and words in a text file.

Week 5:

MCA-III Page 2
JAVA
12. Write a Java program that:

a) Implements stack ADT.

Week 6:

13. Write an applet that displays a simple message.

14. Develop an applet that displays receives an Integer in one text field, and computes its
factorial value and returns it in another text field, when the button named “ Compute “ is clicked.

Week 7:

15. Write a Java program that works as a simple calculator. Use a grid layout to arrange buttons
for the digits and for the + - X % operations. Add a text field to display the result.

Week 8:

16. Write a Java program for handling mouse events.

NOTE: write keyboard events in addition to

Written mouse events (already written)


Week 9:

17. Write a Java program for creating multiple threads. First Thread displays “Good Morning”
every one second, the second thread displays “Hello” every two seconds and the third thread
displays “Welcome” every three seconds.

18. Write a Java program that correctly implements producer consumer problem using the
concept of inter thread communication.

Week 11:

19. Write a Java program that implements a simple client/server application. The client sends
data to a server. The server receives the data, uses it to produce a result, and then sends the result
back to the client. The client displays the result on the console. For ex: The data sent from the
client is the radius of a circle, and the result produced by the server is the area of the circle.

MCA-III Page 3
JAVA
Week 12:

20. Write a Java program that allows the user to draw lines, rectangles and Ovals

21. Write a java Program to display the table using JTable Component.

22.Write a Swing program using JTable

23. Write a Swing Program using JTabbed.

24. Write a Swing Program using JTree.

25.Write a java program to display TextBox, Radio Buttons, CheckBox.

MCA-III Page 4
JAVA
OBJECT ORIENTED PROGRAMMING:

OOP Concepts:

The object oriented paradigm is built on the foundation laid by the


structured programming concepts. The fundamental change in OOP
is that a program is designed around the data being operated upon
rather upon the operations themselves. Data and its functions are
encapsulated into a single entity.OOP facilitates creating reusable
code that can eventually save a lot of work. A feature called
polymorphism permits to create multiple definitions for operators and
functions. Another feature called inheritance permits to derive new
classes from old ones. OOP introduces many new ideas and involves

MCA-III Page 5
JAVA
a different approach to programming than the procedural
programming.

Benefits of object oriented programming:

Data security is enforced.

Inheritance saves time.

User defined data types can be easily constructed.

Inheritance emphasizes inventions of new data types.

Large complexity in the software development cn be easily


managed.

Basic C++ Knowledge:

C++ began its life in Bell Labs, where Bjarne Stroustrup developed the
language in the early 1980s. C++ is a powerful and flexible
programming language. Thus, with minor exceptions, C++ is a
superset of the C Programming language.

The principal enhancement being the object –oriented concept of


a class.

A Class is a user defined type that encapsulates many important


mechanisms. Classes enable programmers to break an application
up into small, manageable pieces, or objects.

Basic concepts of Object oriented programming:

MCA-III Page 6
JAVA
Object:

Objects are the basic run time entities in an object-oriented


system.

thy may represent a person, a place, a bank account, a


table of data or any item that the program has to handle.

Class:

The entire set of data and code of an object can be made of


a user defined data type with the help of a class.

I fact, Objects are variables of the type class.

Once a class has been defined, we can create any number of


objects belonging to that class

A class is thus a collection of objects of similar type.

for example: mango, apple, and orange are members of the


class fruit.

ex: fruit mango; will create an object mango belonging


to the class fruit.

Data Abstraction and Encapsulation:

The wrapping up of data and functions in to a single unit is


known as encapsulation.

Data encapsulation is the most striking feature of a class.

The data is not accessible to the outside world, and only those
functions which are wrapped in the class can access.

MCA-III Page 7
JAVA
This insulation of the data from direct access by the program is
called data hiding.

Abstraction :

Abstraction referes to the act of representing essential features


without including the background details or explanations.

since the classes use the concept of data abstraction ,thy are
known as abstraction data type(ADT).

Inheritance :

Inheritance is the process by which objects of one class


acquire the properties of objects of another class. Inheritance
supports the concept of hierarchical classification.

MCA-III Page 8
JAVA
for example:

Bird

Attributes

Flying Non flying


bird bird

Attributes Attributes:
:

Robin Swallow
Penguin Kiwi

Attributes Attributes
Attributes Attributes

The bird 'robin ' is a part of the class 'flying bird' which is agian a
part of the class 'bird'. The concept of inheritance provide the idea
of reusability.

POLYMORPHISM:

Polymorphism is another important oop concept. Polymorphism


means the ability to take more than one form. an operation may

MCA-III Page 9
JAVA
exhibit different instances. The behavior depends upon the types of
data used in the operation.

The process of making an operator to exhibit different behaviors


in different instance is known as operator overloading.

Polymorphism plays an important role in allowing objects having


different internal structures to share the same external interface.
Polymorphism is extensively used if implementing inheritance.

Shape

Circle Object Box Object Triangle Object

The Object-Oriented Approach

The fundamental idea behind object-oriented languages is to


combine into a single program entity both data and the functions
that operate on that data. Such an entity is called an object.

An object's functions, called member functions in C++ (because


they belong to a particular class of objects), typically provide the
only way to access its data. If you want to read a data item in an
object, you call a member function in the object. It will read the item
and return the value to you. You can't access the data directly. The
data is hidden, so it is safe from accidental alteration. Data and its

MCA-III Page 10
JAVA
functions are said to be encapsulated into a single entity.
Encapsulation and data hiding are key terms in the description of
object-oriented languages.

MCA-III Page 11
JAVA
Java History:

Java is a general-purpose; object oriented programming language


developed by Sun Microsystems of USA in 1991. Originally called “oak” by James
Gosling, one of the inventors if the language. This goal had a strong impact on the
development team to make the language simple, portable, highly reliable and
powerful language.
Java also adds some new features. While C++ is a superset of C. Java
is neither a superset nor a subset of C or C++.

C++
Java
C

MCA-III Page 12
JAVA
Process of building and running java application programs:

Text Editor

Java Source HTML


Javado
Code files
c

Javac

Java Class Header


Javah
File Files

Java (only file Jdb


name) (database)

Java
progra
m

The way these tools are applied to build and run application programs is create a
program. We need create a source code file using a text editor. The source code is
then compiled using the java compiler javac and executed using the java interpreter
java. The java debugger jdb is used to find errors. A complied java program can be
converted into a source code.

MCA-III Page 13
JAVA

SOLUTIONS
Program Statement :

Write a Java program that prints all real solutions to the quadratic
equation ax2+bx+c = 0. Read in a, b, c and use the quadratic
formula. If the discriminant

b2-4ac is negative, display a message stating that there are no real


solutions.

Program :

import java.io.*;

class Quadratic

public static void main(String args[])throws IOException

double x1,x2,disc,a,b,c;

InputStreamReader obj=new InputStreamReader(System.in);

BufferedReader br=new BufferedReader(obj);

MCA-III Page 14
JAVA
System.out.println("enter a,b,c values");

a=Double.parseDouble(br.readLine());

b=Double.parseDouble(br.readLine());

c=Double.parseDouble(br.readLine());

disc=(b*b)-(4*a*c);

if(disc==0)

System.out.println("roots are real and equal ");

x1=x2=-b/(2*a);

System.out.println("roots are "+x1+","+x2);

else if(disc>0)

System.out.println("roots are real and unequal");

x1=(-b+Math.sqrt(disc))/(2*a);

x2=(-b+Math.sqrt(disc))/(2*a);

MCA-III Page 15
JAVA
System.out.println("roots are "+x1+","+x2);

else

System.out.println("roots are imaginary");

Input & Output :

MCA-III Page 16
JAVA
Program Statement :

The Fibonacci sequence is defined by the following rule. The first 2


values in the sequence are 1, 1. Every subsequent value is the sum of
the 2 values preceding it. Write a Java program that uses both
recursive and non-recursive functions to print the nth value of the
Fibonacci sequence.

Program :

/*Non Recursive Solution*/

import java.util.Scanner;

class Fib {

public static void main(String args[ ]) {

Scanner input=new Scanner(System.in);

int i,a=1,b=1,c=0,t;

System.out.println("Enter value of t:");

t=input.nextInt();

System.out.print(a);

System.out.print(" "+b);

for(i=0;i<t-2;i++) {

c=a+b;

a=b;

MCA-III Page 17
JAVA
b=c;

System.out.print(" "+c);

System.out.println();

System.out.print(t+"th value of the series is: "+c);

Input & Output :

MCA-III Page 18
JAVA

MCA-III Page 19
JAVA

/* Recursive Solution*/

import java.io.*;

import java.lang.*;

class Demo {

int fib(int n) {

if(n==1)

return (1);

else if(n==2)

return (1);

else

return (fib(n-1)+fib(n-2));

class RecFibDemo {

public static void main(String args[])throws IOException {

MCA-III Page 20
JAVA
InputStreamReader obj=new
InputStreamReader(System.in);

BufferedReader br=new BufferedReader(obj);

System.out.println("enter last number");

int n=Integer.parseInt(br.readLine());

Demo ob=new Demo();

System.out.println("fibonacci series is as follows");

int res=0;

for(int i=1;i<=n;i++) {

res=ob.fib(i);

System.out.println(" "+res);

System.out.println();

System.out.println(n+"th value of the series is "+res);

Input & Output :

MCA-III Page 21
JAVA

MCA-III Page 22
JAVA

Program Statement :

WAJP that prompts the user for an integer and then prints out all the
prime numbers up to that Integer.

Program :

Import java.util.*

class Test {

void check(int num) {

System.out.println ("Prime numbers up to "+num+" are:");

for (int i=1;i<=num;i++)

for (int j=2;j<i;j++) {

MCA-III Page 23
JAVA
if(i%j==0)

break;

else if((i%j!=0)&&(j==i-1))

System.out.print(“ “+i);

} //end of class Test

class Prime {

public static void main(String args[ ]) {

Test obj1=new Test();

Scanner input=new Scanner(System.in);

System.out.println("Enter the value of n:");

int n=input.nextInt();

obj1.check(n);

MCA-III Page 24
JAVA

Input & Output :

MCA-III Page 25
JAVA

Program Statement :

WAJP that checks whether a given string is a palindrome or not. Ex:


MADAM is a palindrome.

Program :

import java.io.*;

MCA-III Page 26
JAVA
class Palind {

public static void main(String args[ ])throws IOException {

BufferedReader br=new BufferedReader(new


InputStreamReader(System.in));

System.out.println("Enter the string to check for palindrome:");

String s1=br.readLine();

StringBuffer sb=new StringBuffer();

sb.append(s1);

sb.reverse();

String s2=sb.toString();

if(s1.equals(s2))

System.out.println("palindrome");

else

System.out.println("not palindrome");

MCA-III Page 27
JAVA
Input &

Output

MCA-III Page 28
JAVA

Program Statement :

WAJP for sorting a given list of names in ascending order.

Program :

import java.io.*;

class Test {

int len,i,j;

String arr[ ];

MCA-III Page 29
JAVA
Test(int n) {

len=n;

arr=new String[n];

String[ ] getArray()throws IOException {

BufferedReader br=new BufferedReader (new


InputStreamReader(System.in));

System.out.println ("Enter the strings U want to sort----");

for (int i=0;i<len;i++)

arr[i]=br.readLine();

return arr;

String[ ] check()throws ArrayIndexOutOfBoundsException {

for (i=0;i<len-1;i++) {

for(int j=i+1;j<len;j++) {

if ((arr[i].compareTo(arr[j]))>0) {

String s1=arr[i];

arr[i]=arr[j];

arr[j]=s1;

MCA-III Page 30
JAVA
}

return arr;

void display()throws ArrayIndexOutOfBoundsException {

System.out.println ("Sorted list is---");

for (i=0;i<len;i++)

System.out.println(arr[i]);

} //end of the Test class

class Ascend {

public static void main(String args[ ])throws IOException {

Test obj1=new Test(4);

obj1.getArray();

obj1.check();

obj1.display();

Input & Output :

MCA-III Page 31
JAVA

MCA-III Page 32
JAVA
Program Statement :

WAJP to multiply two given matrices.

Program :

import java.util.*;

class Test {

int r1,c1,r2,c2;

Test(int r1,int c1,int r2,int c2) {

this.r1=r1;

this.c1=c1;

this.r2=r2;

this.c2=c2;

int[ ][ ] getArray(int r,int c) {

int arr[][]=new int[r][c];

System.out.println("Enter the elements for "+r+"X"+c+"


Matrix:");

Scanner input=new Scanner(System.in);

MCA-III Page 33
JAVA
for(int i=0;i<r;i++)

for(int j=0;j<c;j++)

arr[i][j]=input.nextInt();

return arr;

int[ ][ ] findMul(int a[ ][ ],int b[ ][ ]) {

int c[][]=new int[r1][c2];

for (int i=0;i<r1;i++)

for (int j=0;j<c2;j++) {

c[i][j]=0;

for (int k=0;k<r2;k++)

c[i][j]=c[i][j]+a[i][k]*b[k][j];

return c;

void putArray(int res[ ][ ]) {

System.out.println ("The resultant "+r1+"X"+c2+" Matrix is:");

for (int i=0;i<r1;i++) {

for (int j=0;j<c2;j++)

System.out.print(res[i][j]+" ");

MCA-III Page 34
JAVA
System.out.println();

} //end of Test class

class MatrixMul {

public static void main(String args[ ])throws IOException {

Test obj1=new Test(2,3,3,2);

Test obj2=new Test(2,3,3,2);

int x[ ][ ],y[ ][ ],z[ ][ ];

System.out.println("MATRIX-1:");

x=obj1.getArray(2,3); //to get the matrix from user

System.out.println("MATRIX-2:");

y=obj2.getArray(3,2);

z=obj1.findMul(x,y); //to perform the multiplication

obj1.putArray(z); // to display the resultant matrix

MCA-III Page 35
JAVA

Input & Output :

MCA-III Page 36
JAVA

MCA-III Page 37
JAVA

Program Statement :

WAJP that reads a line of integers and then displays each integer
and the sum of all integers. (use StringTokenizer class)

Program :

// Using StringTokenizer class

import java.lang.*;

import java.util.*;

class tokendemo {

public static void main(String args[ ]) {

String s="10,20,30,40,50";

int sum=0;

MCA-III Page 38
JAVA
StringTokenizer a=new StringTokenizer(s,",",false);

System.out.println("integers are ");

while(a.hasMoreTokens()) {

int b=Integer.parseInt(a.nextToken());

sum=sum+b;

System.out.println(" "+b);

System.out.println("sum of integers is "+sum);

// Alternate solution using command line arguments

class Arguments {

public static void main(String args[ ]) {

int sum=0;

int n=args.length;

System.out.println("length is "+n);

int arr[]=new int[n];

for(int i=0;i<n;i++)

arr[i]=Integer.parseInt(args[i]);

MCA-III Page 39
JAVA

System.out.println("The enterd values are:");

for(int i=0;i<n;i++)

System.out.println(arr[i]);

System.out.println("sum of enterd integers is:");

for(int i=0;i<n;i++)

sum=sum+arr[i];

System.out.println(sum);

Input & Output :

MCA-III Page 40
JAVA

MCA-III Page 41
JAVA
Program Statement :

WAJP that reads on file name from the user, then displays
information about whether the file exists, whether the file is readable,
wheteher the file is writable, the type of file and the length of the file
in bytes.

Program :

import java.io.File;

class FileDemo {
static void p(String s) {
System.out.println(s);
}

public static void main(String args[ ]) {


File f1 = new File(args[0]);
p("File Name: " + f1.getName());
p("Path: " + f1.getPath());
p("Abs Path: " + f1.getAbsolutePath());
p("Parent: " + f1.getParent());
p(f1.exists() ? "exists" : "does not exist");
p(f1.canWrite() ? "is writeable" : "is not writeable");
p(f1.canRead() ? "is readable" : "is not readable");
p("is " + (f1.isDirectory() ? "" : "not" + " a directory"));
p(f1.isFile() ? "is normal file" : "might be a named pipe");
p(f1.isAbsolute() ? "is absolute" : "is not absolute");
p("File last modified: " + f1.lastModified());
p("File size: " + f1.length() + " Bytes");
}
}

MCA-III Page 42
JAVA

Input & Output :

MCA-III Page 43
JAVA
Program Statement :

WAJP that reads a file and displays the file on the screen, with a line
number before each line.

Program :

import java.io.*;

class LineNum{

public static void main(String args[]){

String thisline;

for(int i=0;i<args.length;i++)

try{

LineNumberReader br=new LineNumberReader(new


FileReader(args[i]));

while((thisline=br.readLine())!=null)

System.out.println(br.getLineNumber()+"."+thisline);

}catch(IOException e){

System.out.println("error:"+e);

MCA-III Page 44
JAVA
}

Input & Output :

MCA-III Page 45
JAVA

MCA-III Page 46
JAVA
Program Statement :

WAJP that displays the number of characters, lines and words in a


text file.

Program :

import java.io.*;

public class FileStat {

public static void main(String args[ ])throws IOException {

long nl=0,nw=0,nc=0;

String line;

BufferedReader br=new BufferedReader(new


FileReader(args[0]));

while ((line=br.readLine())!=null) {

nl++;

nc=nc+line.length();

int i=0;

boolean pspace=true;

while (i<line.length()) {

char c=line.charAt(i++);

boolean cspace=Character.isWhitespace(c);

if (pspace&&!cspace)

MCA-III Page 47
JAVA
nw++;

pspace=cspace;

System.out.println("Number of Characters"+nc);

System.out.println("Number of Characters"+nw);

System.out.println("Number of Characters"+nl);

}}

// Alternate solution using StringTokenizer

import java.io.*;

import java.util.*;

public class FileStat {

public static void main(String args[ ])throws IOException {

long nl=0,nw=0,nc=0;

String line;

BufferedReader br=new BufferedReader(new


FileReader(args[0]));

while ((line=br.readLine())!=null) {

nl++;

nc=nc+line.length();

StringTokenizer st = new StringTokenizer(line);

MCA-III Page 48
JAVA
nw += st.countTokens();

System.out.println("Number of Characters"+nc);

System.out.println("Number of Characters"+nw);

System.out.println("Number of Characters"+nl);

}}

Input & Output :

MCA-III Page 49
JAVA
Program Statement :

WAJP that:

(a) Implements a Stack ADT

(b) Converts Infix expression to Postfix expression

(c) Evaluates a Postfix expression

Program :

import java.io.*;

interface stack

void push(int item);

int pop();

class Stackimpl

private int stck[];

private int top;

MCA-III Page 50
JAVA

Stackimpl(int size)

stck=new int[size];

top=-1;

void push(int item)

if(top==stck.length-1)

System.out.println("stack is full insertion is not


possible");

else

stck[++top]=item;

int pop()

if(top==-1)

MCA-III Page 51
JAVA
System.out.println("stack is empty deletion is not
possible");

return 0;

else

return stck[top--];

class Stackdemo

public static void main(String args[])throws IOException

int a[];

BufferedReader br=new BufferedReader(new


InputStreamReader(System.in));

System.out.println("enter the size of the array");

int n=Integer.parseInt(br.readLine());

MCA-III Page 52
JAVA

Stackimpl obj1=new Stackimpl(n);

a=new int[n];

System.out.println("enter numbers into the stack");

for(int i=0;i<n;i++)

a[i]=Integer.parseInt(br.readLine());

System.out.println("numbers are inserted");

for(int i=0;i<n;i++)

obj1.push(a[i]);

System.out.println("The following numbers are poped


out.");

for(int i=0;i<n;i++)

System.out.println(" "+obj1.pop());

MCA-III Page 53
JAVA
Input & Output :

MCA-III Page 54
JAVA
Program Statement :

Write an Applet that displays a simple message.

Program :

import java.awt.*;

import java.applet.*;

/*

<applet code = “HelloJava” width = 200 height = 60 >

</applet>

*/

public class HelloJava extends Applet {

public void paint(Graphics g) {

g.drawString(“Hello Java”, 10, 100);

Input & Output :

MCA-III Page 55
JAVA

MCA-III Page 56
JAVA
Program Statement :

Write an Applet that computes the payment of a loan based on the


amount of the loan, the interest rate and the number of months. It
takes one parameter from the browser: Monthly rate; if true, the
interest rate is per month, otherwise the interest rate is annual.

Program :

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

/* <applet code = "LoanPayment" width=500 height=300 >

<param name = monthlyRate value=true>

</applet>

*/

public class LoanPayment extends Applet implements ActionListener


{

TextField amt_t, rate_t, period_t;

Button compute = new Button("Compute");

boolean monthlyRate;

MCA-III Page 57
JAVA

public void init() {

Label amt_l = new Label("Amount: ");

Label rate_l = new Label("Rate: ", Label.CENTER);

Label period_l = new Label("Period: ", Label.RIGHT);

amt_t = new TextField(10);

rate_t = new TextField(10);

period_t = new TextField(10);

add(amt_l);

add(amt_t);

add(rate_l);

add(rate_t);

add(period_l);

add(period_t);

add(compute);

amt_t.setText("0");

rate_t.setText("0");

period_t.setText("0");

MCA-III Page 58
JAVA

monthlyRate =
Boolean.valueOf(getParameter("monthlyRate"));

amt_t.addActionListener(this);

rate_t.addActionListener(this);

period_t.addActionListener(this);

compute.addActionListener(this);

public void paint(Graphics g) {

double amt=0, rate=0, period=0, payment=0;

String amt_s, rate_s, period_s, payment_s;

g.drawString("Input the Loan Amt, Rate and Period in


each box and press Compute", 50,100);

try {

amt_s = amt_t.getText();

amt = Double.parseDouble(amt_s);

rate_s = rate_t.getText();

rate = Double.parseDouble(rate_s);

period_s = period_t.getText();

MCA-III Page 59
JAVA
period = Double.parseDouble(period_s);

catch (Exception e) { }

if (monthlyRate)

payment = amt * period * rate * 12 / 100;

else

payment = amt * period * rate / 100;

payment_s = String.valueOf(payment);

g.drawString("The LOAN PAYMENT amount is: ", 50, 150);

g.drawString(payment_s, 250, 150);

public void actionPerformed(ActionEvent ae) {

repaint();

Input & Output :

MCA-III Page 60
JAVA

MCA-III Page 61
JAVA
Program Statement :

WAJP that works as a simple calculator. Use a grid layout to arrange


buttons for the digits and for the + - x / % operations. Add atext field
to display the result.

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);

MCA-III Page 62
JAVA
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);

MCA-III Page 63
JAVA
JPanel panel=new JPanel();

panel.setLayout(new GridLayout(4,4));

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);

MCA-III Page 64
JAVA
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);

MCA-III Page 65
JAVA
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)

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");

MCA-III Page 66
JAVA
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());

MCA-III Page 67
JAVA
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="+";

result.setText("0");

MCA-III Page 68
JAVA
}

Input & Output :

MCA-III Page 69
JAVA
Program Statement :

WAJP for handling mouse events.

Program :

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
/*
<applet code="MouseEvents" width=300 height=100>
</applet>
*/

public class MouseEvents extends Applet


implements MouseListener, MouseMotionListener {

String msg = "";


int mouseX = 0, mouseY = 0; // coordinates of mouse

public void init() {


addMouseListener(this);
addMouseMotionListener(this);
}

// Handle mouse clicked.


public void mouseClicked(MouseEvent me) {
// save coordinates
mouseX = 0;
mouseY = 10;
msg = "Mouse clicked.";
repaint();
}

// Handle mouse entered.

MCA-III Page 70
JAVA
public void mouseEntered(MouseEvent me) {
// save coordinates
mouseX = 0;
mouseY = 10;
msg = "Mouse entered.";
repaint();
}

// Handle mouse exited.


public void mouseExited(MouseEvent me) {
// save coordinates
mouseX = 0;
mouseY = 10;
msg = "Mouse exited.";
repaint();
}

// Handle button pressed.


public void mousePressed(MouseEvent me) {
// save coordinates
mouseX = me.getX();
mouseY = me.getY();
msg = "Down";
repaint();
}

// Handle button released.


public void mouseReleased(MouseEvent me) {
// save coordinates
mouseX = me.getX();
mouseY = me.getY();
msg = "Up";
repaint();
}

// Handle mouse dragged.


public void mouseDragged(MouseEvent me) {
// save coordinates
mouseX = me.getX();
mouseY = me.getY();

MCA-III Page 71
JAVA
msg = "*";
showStatus("Dragging mouse at " + mouseX + ", " + mouseY);
repaint();
}

// Handle mouse moved.


public void mouseMoved(MouseEvent me) {
// show status
showStatus("Moving mouse at " + me.getX() + ", " + me.getY());
}

// Display msg in applet window at current X,Y location.


public void paint(Graphics g) {
g.drawString(msg, mouseX, mouseY);
}
}
Input & Output :

MCA-III Page 72
JAVA

Program Statement :

WAJP for creating multiple threads.

Program :

class NewThread implements Runnable {


String name; // name of thread
Thread t;
NewThread(String threadname) {
name = threadname;

MCA-III Page 73
JAVA
t = new Thread(this, name);
System.out.println("New thread: " + t);
t.start(); // Start the thread
}

// This is the entry point for thread.


public void run() {
try {
for(int i = 5; i > 0; i--) {
System.out.println(name + ": " + i);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
System.out.println(name + "Interrupted");
}
System.out.println(name + " exiting.");
}
}

class MultiThreadDemo {
public static void main(String args[]) {
new NewThread("One"); // start threads
new NewThread("Two");
new NewThread("Three");

try {
// wait for other threads to end
Thread.sleep(10000);
} catch (InterruptedException e) {
System.out.println("Main thread Interrupted");
}

System.out.println("Main thread exiting.");


}
}

MCA-III Page 74
JAVA

Input & Output :

MCA-III Page 75
JAVA

MCA-III Page 76
JAVA
Program Statement :

WAJP that correctly implements Producer-Consumer problem using


the concept of Inter Thread Communication.

Program :

class Q {

int n;

boolean valueSet = false;

synchronized int get() {

if (!valueSet)

try {

wait();

} catch (InterruptedException e) { }

System.out.println(“Got: “ + n);

valueSet = false;

notify();

return n;

MCA-III Page 77
JAVA

synchronized void put(int n) {

if (valueSet)

try {

wait();

} catch (InterruptedException e) { }

this.n = n;

valueSet = true;

System.out.println(“Put: “ + n);

notify();

class Producer implements Runnable {

Q q;

Producer(Q q) {

this.q = q;

new Thread(this, “Producer”).start();

MCA-III Page 78
JAVA
public void run() {

int i = 0;

while(true) {

q.put(i++);

class Consumer implements Runnable {

Q q;

Consumer(Q q) {

this.q = q;

new Thread(this, “Consumer”).start();

public void run() {

while(true) {

q.get();

MCA-III Page 79
JAVA
}

class PC {

public static void main (String args[ ]) {

Q q = new Q();

new Producer(q);

new Consumer(q);

System.out.println(“Press Ctrl-C to stop”);

Input & Output :

MCA-III Page 80
JAVA

MCA-III Page 81
JAVA
Program Statement :

WAJP that lets users create Pie charts. Design your own user
interface (with Swings & AWT).

Program :

import java.awt.*;

import java.applet.*;

/*<applet code=PiChart.class width=600 height=600></applet>*/

public class PiChart extends Applet {

public void paint(Graphics g) {

setBackground(Color.green);

g.drawString("PI CHART",200,40);

g.setColor(Color.blue);

g.fillOval(50,50,150,150);

g.setColor(Color.white);

g.drawString("40%",130,160);

g.setColor(Color.magenta);

MCA-III Page 82
JAVA
g.fillArc(50,50,150,150,0,90);

g.setColor(Color.white);

g.drawString("25%",140,100);

g.setColor(Color.yellow);

g.fillArc(50,50,150,150,90,120);

g.setColor(Color.black);

g.drawString("35%",90,100);

g.setColor(Color.yellow);

g.fillOval(250,50,150,150);

g.setColor(Color.black);

g.drawString("15%",350,150);

g.setColor(Color.magenta);

g.fillArc(250,50,150,150,0,30);

g.setColor(Color.black);

g.drawString("5%",360,120);

g.setColor(Color.blue);

g.fillArc(250,50,150,150,30,120);

g.setColor(Color.white);

g.drawString("30%",330,100);

g.setColor(Color.black);

g.fillArc(250,50,150,150,120,180);

MCA-III Page 83
JAVA
g.setColor(Color.white);

g.drawString("50%",280,160);

Input & Output :

MCA-III Page 84
JAVA

MCA-III Page 85
JAVA
Program Statement :

WAJP that allows user to draw lines, rectangles and ovals.

Program :

import javax.swing.*;

import java.awt.Graphics;

public class choice extends JApplet

int i,ch;

public void init()

String input;

input=JOptionPane.showInputDialog("enter your
choice(1-lines,2-rectangles,3-ovals)");

ch=Integer.parseInt(input);

public void paint(Graphics g)

switch(ch)

case 1:{

MCA-III Page 86
JAVA
for(i=1;i<=10;i++)

g.drawLine(10,10,250,10*i);

break;

case 2:{

for(i=1;i<=10;i++)

g.drawRect(10*i,10*i,50+10*i,50+10*i);

break;

case 3:{

for(i=1;i<=10;i++)

g.drawOval(10*i,10*i,50+10*i,50+10*i);

break;

}}}}

MCA-III Page 87
JAVA

Input & Output :

MCA-III Page 88
JAVA

MCA-III Page 89
JAVA
Program Statement :

WAJP that implements a simple client/server application. The client


sends data to a server. The server receives the data, uses it to
produce a result and then sends the result back to the client. The
client displays the result on the console. For ex: The data sent from
the client is the radius of a circle and the result produced by the
server is the area of the circle.

Program :

// Server Program

import java.io.*;

import java.net.*;

import java.util.*;

public class Server {

public void static main (String args [ ] ) {

try {

// create a server socket

ServerSocket s = new ServerSocket(8000);

// start listening for connections on srver socket

MCA-III Page 90
JAVA
Socket connectToClient = s.accept();

// create a buffered reader stream to get data from


client

BufferedReader isFromClient = new


BufferedReader(new InputStreamReader
(connectToClient.getInputStream()));

// create a buffer reader to send result to client

PrintWriter osToClient = new


PrintWriter(connectToClient.getOutputStream(), true);

// continuously read from client, process, send back

while (true) {

// read a line and create string tokenizer

StringTokenizer st = new
StringTokenizer(isFromClient.readLine());

//convert string to double

double radius = new


Double(st.nextToken()).doubleValue();

// display radius on console

MCA-III Page 91
JAVA
System.out.println(“Radius received from client:
“ + radius);

// comput area

double area = radius * radius *Math.PI;

// send result to client

osToClient.println(area);

// print result on console

System.out.println(“Area found: “ +area);

} catch (IOException e) {

System.err.println(e);

// Client Program

import java.io.*;

MCA-III Page 92
JAVA
import java.net.*;

import java.util.*;

public class Client {

public void static main (String args [ ] ) {

try {

// create a socket to connect to server

Socket connectToServer = new Socket(“local host”,


8000);

// create a buffered input stream to get result from


server

BufferedReader isFromServer = new


BufferedReader(new InputStreamReader
(connectToServer.getInputStream()));

// create a buffer output stream to send data to


server

PrintWriter osToServer = new


PrintWriter(connectToClient.getOutputStream(), true);

// continuously send radius and get area

while (true) {

Scanner input=new Scanner(System.in);

MCA-III Page 93
JAVA
System.out.print(“Please enter a radius: “);

double radius =input.nextDouble();

// display radius on console

osToServer.println(radius);

// get area from server

StringTokenizer st = new
StringTokenizer(isFromServer.readLine());

// convert string to double

Double area = new


Double(st.nextToken()).doubleValue();

// print result on console

System.out.println(“Area received from the


server is: “ +area);

} catch (IOException e) {

System.err.println(e);

MCA-III Page 94
JAVA

Input & Output :

MCA-III Page 95
JAVA

MCA-III Page 96
JAVA
Program Statement :

WAJP that illustrates how runtime polymorphism is achieved.

Program :

class Figure {
double dim1;
double dim2;

Figure(double a, double b) {
dim1 = a;
dim2 = b;
}

double area() {
System.out.println("Area for Figure is undefined.");
return 0;
}
}

class Rectangle extends Figure {


Rectangle(double a, double b) {
super(a, b);
}

// override area for rectangle


double area() {
System.out.println("Inside Area for Rectangle.");
return dim1 * dim2;
}
}

class Triangle extends Figure {


Triangle(double a, double b) {

MCA-III Page 97
JAVA
super(a, b);
}

// override area for right triangle


double area() {
System.out.println("Inside Area for Triangle.");
return dim1 * dim2 / 2;
}
}

class FindAreas {
public static void main(String args[]) {
Figure f = new Figure(10, 10);
Rectangle r = new Rectangle(9, 5);
Triangle t = new Triangle(10, 8);

Figure figref;

figref = r;
System.out.println("Area is " + figref.area());

figref = t;
System.out.println("Area is " + figref.area());

figref = f;
System.out.println("Area is " + figref.area());
}
}

MCA-III Page 98
JAVA

Input & Output :

MCA-III Page 99
JAVA
Program Statement :

WAJP to generate a set of random numbers. Find its sum and


average. The program should also display ‘*’ based on the random
numbers generated.

Program :

import java.util.*;

class RandNum {

public static void main(String ax[ ]) {

int a[ ]=new int[5];

int sum=0;

Random r=new Random();

for (int i=0;i<5;i++) {

a[i]=r.nextInt(10);

System.out.print(a[i]);

for(int y=0;y<a[i];y++)

System.out.print(" *");

System.out.println("");

for(int i=0;i<5;i++)

sum=sum+a[i];

MCA-III Page 100


JAVA

System.out.println("Sum="+sum);

System.out.println("Avg="+(double)sum/a.length);

Input & Output :

MCA-III Page 101


JAVA

MCA-III Page 102


JAVA

Program Statement :

WAJP to create an abstract class named Shape, that contains an


empty method named numberOfSides(). Provide three classes
named Trapezoid, Triangle and Hexagon, such that each one of
the classes contains only the method numberOfSides(), that
contains the number of sides in the given geometrical figure.

Program :

abstract class Shape

abstract void numberOfSides();

class Trapezoid extends Shape{

MCA-III Page 103


JAVA
void numberOfSides() {

System.out.println(" Trapezoidal has four sides");

class Triangle extends Shape {

void numberOfSides()

System.out.println("Triangle has three sides");

class Hexagon extends Shape {

void numberOfSides()

System.out.println("Hexagon has six sides");

class ShapeDemo {

public static void main(String args[ ]) {

Trapezoid t=new Trapezoid();

Triangle r=new Triangle();

Hexagon h=new Hexagon();

Shape s;

MCA-III Page 104


JAVA
s=t;

s.numberOfSides();

s=r;

s.numberOfSides();

s=h;

s.numberOfSides();

Input & Output :

MCA-III Page 105


JAVA
Program Statement :

WAJP to implement a Queue, using user defined Exception Handling


(also make use of throw, throws).

Program :

import java.util.Scanner;

class ExcQueue extends Exception {

ExcQueue(String s) {

super(s);

class Queue {

int front,rear;

int q[ ]=new int[10];

Queue() {

rear=-1;

front=-1;

MCA-III Page 106


JAVA
}

void enqueue(int n) throws ExcQueue {

if (rear==9)

throw new ExcQueue("Queue is full");

rear++;

q[rear]=n;

if (front==-1)

front=0;

int dequeue() throws ExcQueue {

if (front==-1)

throw new ExcQueue("Queue is empty");

int temp=q[front];

if (front==rear)

front=rear=-1;

else

front++;

return(temp);

MCA-III Page 107


JAVA

class UseQueue {

public static void main(String args[ ]) {

Queue a=new Queue();

try {

a.enqueue(5);

a.enqueue(20);

} catch (ExcQueue e) {

System.out.println(e.getMessage());

try {

System.out.println(a.dequeue());

System.out.println(a.dequeue());

System.out.println(a.dequeue());

} catch(ExcQueue e) {

System.out.println(e.getMessage());

Input & Output :

MCA-III Page 108


JAVA

MCA-III Page 109


JAVA
Program Statement :

WAJP that creates 3 threads by extending Thread class. First thread


displays “Good Morning” every 1 sec, the second thread displays
“Hello” every 2 seconds and the third displays “Welcome” every 3
seconds. (Repeat the same by implementing Runnable)

Program :

// Using Thread class

class One extends Thread {

public void run() {

for ( ; ; ) {

try{

sleep(1000);

}catch(InterruptedException e){}

System.out.println("Good Morning");

class Two extends Thread {

public void run() {

MCA-III Page 110


JAVA
for ( ; ; ) {

try{

sleep(2000);

}catch(InterruptedException e){}

System.out.println("Hello");

class Three extends Thread {

public void run() {

for ( ; ; ) {

try{

sleep(3000);

}catch(InterruptedException e){}

System.out.println("Welcome");

class MyThread {

public static void main(String args[ ]) {

MCA-III Page 111


JAVA
Thread t = new Thread();

One obj1=new One();

Two obj2=new Two();

Three obj3=new Three();

Thread t1=new Thread(obj1);

Thread t2=new Thread(obj2);

Thread t3=new Thread(obj3);

t1.start();

try{

t.sleep(1000);

}catch(InterruptedException e){}

t2.start();

try{

t.sleep(2000);

}catch(InterruptedException e){}

t3.start();

try{

t.sleep(3000);

}catch(InterruptedException e){}

MCA-III Page 112


JAVA
}

// Using Runnable interface

class One implements Runnable {

One( ) {

new Thread(this, "One").start();

try{

Thread.sleep(1000);

}catch(InterruptedException e){}

public void run() {

for ( ; ; ) {

try{

Thread.sleep(1000);

}catch(InterruptedException e){}

System.out.println("Good Morning");

MCA-III Page 113


JAVA
class Two implements Runnable {

Two( ) {

new Thread(this, "Two").start();

try{

Thread.sleep(2000);

}catch(InterruptedException e){}

public void run() {

for ( ; ; ) {

try{

Thread.sleep(2000);

}catch(InterruptedException e){}

System.out.println("Hello");

class Three implements Runnable {

Three( ) {

MCA-III Page 114


JAVA
new Thread(this, "Three").start();

try{

Thread.sleep(3000);

}catch(InterruptedException e){}

public void run() {

for ( ; ; ) {

try{

Thread.sleep(3000);

}catch(InterruptedException e){}

System.out.println("Welcome");

class MyThread {

public static void main(String args[ ]) {

One obj1=new One();

Two obj2=new Two();

Three obj3=new Three();

MCA-III Page 115


JAVA
}

Input & Output :

MCA-III Page 116


JAVA
Program Statement :

WAJP that will compute the following series:

(a) 1 + 1/2 + 1/3+ …….+ 1/n

(b) 1 + 1/2 + 1/ 22 + 1/ 23 + … … + 1/ 2n

(c) ex = 1 + x/1! + x2/2! + x3/3! + … …

Program :

// (a) 1 + 1/2 + 1/3+ …….+ 1/n

import java.util.Scanner;

class Series1 {

public static void main(String arg[ ]) {

int n;

double sum=0,i;

Scanner input= new Scanner(System.in);

System.out.println("enter value of n:");

n=input.nextInt();

for(i=1;i<=n;i++)

sum=sum+(double)(1/i);

System.out.println("Result:"+sum);

MCA-III Page 117


JAVA
}

Input & Output :

// (b)1 + 1/2 + 1/ 22 + 1/ 23 + … … + 1/ 2n

import java.util.Scanner;

class Series2 {

public static void main(String arg[ ]) {

int n;

double sum=0,i;

Scanner input= new Scanner(System.in);

System.out.println("enter value of n:");

n=input.nextInt();

MCA-III Page 118


JAVA
for(i=1;i<=n;i++)

sum=sum+(double)(1/Math.pow(2,i-1));

System.out.println("Result:"+sum);

Input & Output :

MCA-III Page 119


JAVA

// (c) ex = 1 + x/1! + x2/2! + x3/3! + … …

import java.util.*;

class Series3{

public static void main(String arg[ ]) {

int n,x;

double sum=0,i,d=1;

Scanner input= new Scanner(System.in);

System.out.println("enter value of n:");

n=input.nextInt();

System.out.println("enter value of x:");

x=input.nextInt();

for (i=1;i<=n;i++) {

sum=sum+(double)((Math.pow(x,i-1)/d));

d=d*i;

System.out.println("Result :"+sum);

MCA-III Page 120


JAVA

Input & Output :

MCA-III Page 121


JAVA
Program Statement :

WAJP to do the following:

(a) To output the question “Who is the inventor of Java?”

(b) To accept an answer

(c) To printout “GOOD” and then stop if the answer is correct

(d) To output the message “TRY AGAIN”, if the answer is


wrong

(e) To display the correct answer, when the answer is wrong


even at the third attempt

Program :

import java.io.*;

class Ask {

public static void main(String a[ ])throws Exception {

String str1,str2;

int count=0;

str1="James Gosling";

BufferedReader br=new BufferedReader(new


InputStreamReader(System.in));

System.out.println("Who is the inventor of Java ?");

while(count!=3) {

MCA-III Page 122


JAVA
str2=br.readLine();

if(str1.equalsIgnoreCase(str2)) {

System.out.println("!!! GOOD !!!");

break;

else {

if(count<2)

System.out.println("TRY AGAIN !");

count++;

if(count==3)

System.out.println("Correct Answer is : "+str1);

Input & Output :

MCA-III Page 123


JAVA

MCA-III Page 124


JAVA
Program Statement :

WAJP to transpose a matrix using ‘arraycopy’ command.

Program :

class TransMatrix {

public static void main(string args[ ]) {

int i,j,k=0;

int rows,cols,r,c;

int a[ ][ ]={{1,2,3,4},{5,6,7,8}};

rows=a.length;

cols=a[0].length;

int b[ ][ ]=new int[rows*cols];

int s[ ]=new int[rows*cols];

int d[ ]=new int[rows*cols];

for (i=0;i<rows;i++)

for (j=0;j<cols;j++,k++)

s[k]=a[i][j];

i=j=k=r=c=0;

MCA-III Page 125


JAVA
while(r<rows) {

while(c<cols) {

System.arraycopy(s,i,d,i,l);

b[j++][k]=d[i++];

c++;

j=c=0;

k++;

t++;

System.out.println("a matrix:");

for (i=0;i<rows;i++) {

for(j=0;j<cols;j++)

System.out.print(" "+a[i][j]);

System.out.println();

System.out.println("\nb matrix:");

for(i=0;i<cols;i++) {

for(j=0;j<rows;j++)

System.out.print(" "+b[i][j]);

MCA-III Page 126


JAVA
System.out.println();

Input & Output :

INPUT :

OUTPUT :

MCA-III Page 127


JAVA
Program Statement :

Create an inheritance hierarchy of Rodent, Mouse, Gerbil, Hamster


etc. In the base class provide methods that are common to all
Rodents and override these in the derived classes to perform
different behaviors, depending on the specific type of Rodent.
Create an array of Rodent, fill it with different specific types of
Rodents and call your base class methods.

Program :

import java.util.Random;

class Rodent{

void place() {}

void tail() {}

void eat() {}

public static Rodent randRodent(){

Random rr=new Random();

switch (rr.nextInt(4)) {

case 0: return new Mouse();

case 1: return new Gerbil ();

case 2: return new Hamster ();

MCA-III Page 128


JAVA
case 3: return new Beaver ();

return new Rodent();

class Mouse extends Rodent {

void place() {

System.out.println(“Mice are found all over the


world”);

void tail() {

System.out.println(“Mice have long and hairless


tail”);

void eat() {

System.out.println(“Mice eat cardboards,


papers, clothes”);

class Gerbil extends Rodent {

void place() {

MCA-III Page 129


JAVA
System.out.println(“Gerbils are found in arid
parts of Africa and Asia”);

void tail() {

System.out.println(“Gerbils have long tail”);

void eat() {

System.out.println(“Gerbils eat seeds, roots,


insects, parts of plants”);

class Hamster extends Rodent {

void place() {

System.out.println(“Hamsters are found in


Western Europe to China – Dry regions only”);

void tail() {

System.out.println(“Hamsters have short tail”);

void eat() {

System.out.println(“Hamsters eat cereals”);

MCA-III Page 130


JAVA
}

class Beaver extends Rodent {

void place() {

System.out.println(“Beavers are found in


Northern Europe and North America”);

void tail() {

System.out.println(“Beavers have broad tail”);

void eat() {

System.out.println(“Beavers eat bark”);

public class Rodents{

public static void main(String args[ ]) {

Rodent r[] = new Rodent[6];

for (int i=0; i<r.length; i++)

r[i] = Rodent.randRodent();

for (int i=0; i<r.length; i++) {

MCA-III Page 131


JAVA
r[i].place();

r[i].tail();

r[i].eat();

MCA-III Page 132


JAVA

Input & Output :

MCA-III Page 133


JAVA
Program Statement :

WAJP to print a chessboard pattern.

Program :

import java.awt.*;

import java.applet.*;

public class ChessBoard extends Applet {

/* This applet draws a red-and-black checkerboard.

It is assumed that the size of the applet is 160

by 160 pixels.

*/

/* <applet code="ChessBoard.class" width=200 height=160>

</applet> */

public void paint(Graphics g) {

int row; // Row number, from 0 to 7

int col; // Column number, from 0 to 7

int x,y; // Top-left corner of square

MCA-III Page 134


JAVA

for ( row = 0; row < 8; row++ ) {

for ( col = 0; col < 8; col++) {

x = col * 40;

y = row * 40;

if ( (row % 2) == (col % 2) )

g.setColor(Color.white);

else

g.setColor(Color.black);

g.fillRect(x, y, 40, 40);

} // end for row

} // end paint()

} // end class

Input & Output :

MCA-III Page 135


JAVA

MCA-III Page 136


JAVA
SOME OTHER PROGRAMS

APPLET PROGRAMS

1. // Demonstrate BorderLayout.

import java.awt.*;

import java.applet.*;

import java.util.*;

/*

<applet code="BorderLayoutDemo" width=400 height=200>

</applet>

*/

public class BorderLayoutDemo extends Applet {

public void init() {

setLayout(new BorderLayout());

add(new Button("This is across the top."),

BorderLayout.NORTH);

add(new Label("The footer message might go here."),

BorderLayout.SOUTH);

add(new Button("Right"), BorderLayout.EAST);

add(new Button("Left"), BorderLayout.WEST);

MCA-III Page 137


JAVA

String msg = "The reasonable man adapts " +

"himself to the world;\n" +

"the unreasonable one persists in " +

"trying to adapt the world to himself.\n" +

"Therefore all progress depends " +

"on the unreasonable man.\n\n" +

" - George Bernard Shaw\n\n";

add(new TextArea(msg), BorderLayout.CENTER);

2. // Demonstrate Buttons

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

/*

<applet code="ButtonDemo" width=250 height=150>

</applet>

*/

MCA-III Page 138


JAVA
public class ButtonDemo extends Applet implements ActionListener {

String msg = "";

Button yes, no, maybe;

TextField f1;

public void init() {

yes = new Button("Yes");

no = new Button("No");

maybe = new Button("Undecided");

f1=new TextField(19);

add(yes);

add(no);

add(maybe);

add(f1);

yes.addActionListener(this);

no.addActionListener(this);

maybe.addActionListener(this);

public void actionPerformed(ActionEvent ae) {

String str = ae.getActionCommand();

MCA-III Page 139


JAVA

if(str.equals("Yes")) {

msg = "You pressed Yes.";

f1.setText(str);

else if(str.equals("No")) {

msg = "You pressed No.";

else {

msg = "You pressed Undecided.";

repaint();

public void paint(Graphics g) {

g.drawString(msg, 6, 100);

3. // Demonstrate Buttons

MCA-III Page 140


JAVA
import java.awt.*;

import java.awt.event.*;

import java.applet.*;

/*

<applet code="ButtonDemo" width=250 height=150>

</applet>

*/

public class ButtonDemo1 extends Frame implements


ActionListener {

static String msg = "";

static Button yes, no, maybe;

public void ButtonDemo1() {

yes = new Button("Yes");

no = new Button("No");

maybe = new Button("Undecided");

add(no);

add(maybe);

MCA-III Page 141


JAVA
yes.addActionListener(this);

no.addActionListener(this);

maybe.addActionListener(this);

public void actionPerformed(ActionEvent ae) {

String str = ae.getActionCommand();

if(str.equals("Yes")) {

msg = "You pressed Yes.";

else if(str.equals("No")) {

msg = "You pressed No.";

else {

msg = "You pressed Undecided.";

public static void main(String s[]) {

ButtonDemo1 b1=new ButtonDemo1();

b1.setSize(300,300);

MCA-III Page 142


JAVA
b1.setVisible(true);

b1.add(yes);

b1.add(no);

b1.add(maybe);

System.out.println(msg);

4. // Demonstrate CardLayout.

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

/*

<applet code="CardLayoutDemo" width=300 height=100>

</applet>

*/

public class CardLayoutDemo extends Applet

implements ActionListener, MouseListener {

Checkbox Win98, winNT, solaris, mac;

MCA-III Page 143


JAVA
Panel osCards;

CardLayout cardLO;

Button Win, Other;

public void init() {

Win = new Button("Windows");

Other = new Button("Other");

add(Win);

add(Other);

cardLO = new CardLayout();

osCards = new Panel();

osCards.setLayout(cardLO); // set panel layout to card layout

Win98 = new Checkbox("Windows 98", null, true);

winNT = new Checkbox("Windows NT");

solaris = new Checkbox("Solaris");

mac = new Checkbox("MacOS");

// add Windows check boxes to a panel

Panel winPan = new Panel();

winPan.add(Win98);

MCA-III Page 144


JAVA
winPan.add(winNT);

// Add other OS check boxes to a panel

Panel otherPan = new Panel();

otherPan.add(solaris);

otherPan.add(mac);

// add panels to card deck panel

osCards.add(winPan, "Windows");

osCards.add(otherPan, "Other");

// add cards to main applet panel

add(osCards);

// register to receive action events

Win.addActionListener(this);

Other.addActionListener(this);

// register mouse events

addMouseListener(this);

MCA-III Page 145


JAVA
// Cycle through panels.

public void mousePressed(MouseEvent me) {

cardLO.next(osCards);

// Provide empty implementations for the other MouseListener


methods.

public void mouseClicked(MouseEvent me) {

public void mouseEntered(MouseEvent me) {

public void mouseExited(MouseEvent me) {

public void mouseReleased(MouseEvent me) {

public void actionPerformed(ActionEvent ae) {

if(ae.getSource() == Win) {

cardLO.show(osCards, "Windows");

else {

cardLO.show(osCards, "Other");

MCA-III Page 146


JAVA
}

5. // Demonstrate check box group.

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

/*

<applet code="CBGroup" width=250 height=200>

</applet>

*/

public class CBGroup extends Applet implements ItemListener {

String msg = "";

Checkbox Win98, winNT, solaris, mac;

CheckboxGroup cbg;

public void init() {

cbg = new CheckboxGroup();

Win98 = new Checkbox("Windows 98", cbg, true);

winNT = new Checkbox("Windows NT", cbg, false);

solaris = new Checkbox("Solaris", cbg, false);

MCA-III Page 147


JAVA
mac = new Checkbox("MacOS", cbg, false);

add(Win98);

add(winNT);

add(solaris);

add(mac);

Win98.addItemListener(this);

winNT.addItemListener(this);

solaris.addItemListener(this);

mac.addItemListener(this);

public void itemStateChanged(ItemEvent ie) {

repaint();

// Display current state of the check boxes.

public void paint(Graphics g) {

msg = "Current selection: ";

msg += cbg.getSelectedCheckbox().getLabel();

g.drawString(msg, 6, 100);

MCA-III Page 148


JAVA
}

6. // Demonstrate check boxes.

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

/*

<applet code="CheckboxDemo" width=250 height=200>

</applet>

*/

public class CheckboxDemo extends Applet implements


ItemListener {

String msg = "";

Checkbox Win98, winNT, solaris, mac;

public void init() {

Win98 = new Checkbox("Windows 98", null, true);

winNT = new Checkbox("Windows NT");

solaris = new Checkbox("Solaris");

mac = new Checkbox("MacOS");

MCA-III Page 149


JAVA
add(Win98);

add(winNT);

add(solaris);

add(mac);

Win98.addItemListener(this);

winNT.addItemListener(this);

solaris.addItemListener(this);

mac.addItemListener(this);

public void itemStateChanged(ItemEvent ie) {

repaint();

// Display current state of the check boxes.

public void paint(Graphics g) {

msg = "Current state: ";

g.drawString(msg, 6, 80);

msg = " Windows 98: " + Win98.getState();

g.drawString(msg, 6, 100);

msg = " Windows NT: " + winNT.getState();

MCA-III Page 150


JAVA
g.drawString(msg, 6, 120);

msg = " Solaris: " + solaris.getState();

g.drawString(msg, 6, 140);

msg = " MacOS: " + mac.getState();

g.drawString(msg, 6, 160);

7. // Demonstrate Choice lists.

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

/*

<applet code="ChoiceDemo" width=300 height=180>

</applet>

*/

public class ChoiceDemo extends Applet implements ItemListener


{

Choice os, browser;

String msg = "";

public void init() {

MCA-III Page 151


JAVA
os = new Choice();

browser = new Choice();

// add items to os list

os.add("Windows 98");

os.add("Windows NT");

os.add("Solaris");

os.add("MacOS");

// add items to browser list

browser.add("Netscape 1.1");

browser.add("Netscape 2.x");

browser.add("Netscape 3.x");

browser.add("Netscape 4.x");

browser.add("Internet Explorer 2.0");

browser.add("Internet Explorer 3.0");

browser.add("Internet Explorer 4.0");

browser.add("Lynx 2.4");

browser.select("Netscape 4.x");

MCA-III Page 152


JAVA

// add choice lists to window

add(os);

add(browser);

// register to receive item events

os.addItemListener(this);

browser.addItemListener(this);

public void itemStateChanged(ItemEvent ie) {

repaint();

// Display current selections.

public void paint(Graphics g) {

msg = "Current OS: ";

msg += os.getSelectedItem();

g.drawString(msg, 6, 120);

msg = "Current Browser: ";

msg += browser.getSelectedItem();

g.drawString(msg, 6, 140);

MCA-III Page 153


JAVA
}

8. import java.applet.Applet;

import java.awt.*;

/*

<applet code="DialogDemo" width=250 height=200>

</applet>

*/

// Create frame window.

public class DialogDemo extends Applet {

Frame f;

public void init() {

f = new MenuFrame("Menu Demo");

int width = Integer.parseInt(getParameter("width"));

int height = Integer.parseInt(getParameter("height"));

setSize(width, height);

f.setSize(width, height);

f.setVisible(true);

MCA-III Page 154


JAVA
}

public void start() {

f.setVisible(true);

public void stop() {

f.setVisible(false);

9. // Use left-aligned flow layout.

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

/*

<applet code="FlowLayoutDemo" width=250 height=200>

</applet>

*/

public class FlowLayoutDemo extends Applet

implements ItemListener {

MCA-III Page 155


JAVA
String msg = "";

Checkbox Win98, winNT, solaris, mac;

public void init() {

// set left-aligned flow layout

setLayout(new FlowLayout(FlowLayout.LEFT));

Win98 = new Checkbox("Windows 98", null, true);

winNT = new Checkbox("Windows NT");

solaris = new Checkbox("Solaris");

mac = new Checkbox("MacOS");

add(Win98);

add(winNT);

add(solaris);

add(mac);

// register to receive item events

Win98.addItemListener(this);

winNT.addItemListener(this);

solaris.addItemListener(this);

mac.addItemListener(this);

MCA-III Page 156


JAVA
}

// Repaint when status of a check box changes.

public void itemStateChanged(ItemEvent ie) {

repaint();

// Display current state of the checkboxes.

public void paint(Graphics g) {

msg = "Current state: ";

g.drawString(msg, 6, 80);

msg = " Windows 98: " + Win98.getState();

g.drawString(msg, 6, 100);

msg = " Windows NT: " + winNT.getState();

g.drawString(msg, 6, 120);

msg = " Solaris: " + solaris.getState();

g.drawString(msg, 6, 140);

msg = " Mac: " + mac.getState();

g.drawString(msg, 6, 160);

MCA-III Page 157


JAVA
10. // Demonstrate GridLayout

import java.awt.*;

import java.applet.*;

/*

<applet code="GridLayoutDemo" width=300 height=200>

</applet>

*/

public class GridLayoutDemo extends Applet {

static final int n = 4;

public void init() {

setLayout(new GridLayout(n, n));

setFont(new Font("SansSerif", Font.BOLD, 24));

for(int i = 0; i < n; i++) {

for(int j = 0; j < n; j++) {

int k = i * n + j;

if(k > 0)

add(new Button("" + k));

MCA-III Page 158


JAVA
}

11. // Demonstrate BorderLayout with insets.

import java.awt.*;

import java.applet.*;

import java.util.*;

/*

<applet code="InsetsDemo" width=400 height=200>

</applet>

*/

public class InsetsDemo extends Applet {

public void init() {

// set background color so insets can be easily seen

setBackground(Color.cyan);

setLayout(new BorderLayout());

add(new Button("This is across the top."),

BorderLayout.NORTH);

add(new Label("The footer message might go here."),

BorderLayout.SOUTH);

MCA-III Page 159


JAVA
add(new Button("Right"), BorderLayout.EAST);

add(new Button("Left"), BorderLayout.WEST);

String msg = "The reasonable man adapts " +

"himself to the world;\n" +

"the unreasonable one persists in " +

"trying to adapt the world to himself.\n" +

"Therefore all progress depends " +

"on the unreasonable man.\n\n" +

" - George Bernard Shaw\n\n";

add(new TextArea(msg), BorderLayout.CENTER);

// add insets

public Insets getInsets() {

return new Insets(10, 10, 10, 10);

12. // Demonstrate Lists.

import java.awt.*;

import java.awt.event.*;

MCA-III Page 160


JAVA
import java.applet.*;

/*

<applet code="ListDemo" width=300 height=180>

</applet>

*/

public class ListDemo extends Applet implements ActionListener {

List os, browser;

String msg = "";

public void init() {

os = new List(4, true);

browser = new List(4, false);

// add items to os list

os.add("Windows 98");

os.add("Windows NT");

os.add("Solaris");

os.add("MacOS");

// add items to browser list

browser.add("Netscape 1.1");

MCA-III Page 161


JAVA
browser.add("Netscape 2.x");

browser.add("Netscape 3.x");

browser.add("Netscape 4.x");

browser.add("Internet Explorer 2.0");

browser.add("Internet Explorer 3.0");

browser.add("Internet Explorer 4.0");

browser.add("Lynx 2.4");

browser.select(1);

// add lists to window

add(os);

add(browser);

// register to receive action events

os.addActionListener(this);

browser.addActionListener(this);

public void actionPerformed(ActionEvent ae) {

MCA-III Page 162


JAVA
repaint();

// Display current selections.

public void paint(Graphics g) {

int idx[];

msg = "Current OS: ";

idx = os.getSelectedIndexes();

for(int i=0; i<idx.length; i++)

msg += os.getItem(idx[i]) + " ";

g.drawString(msg, 6, 120);

msg = "Current Browser: ";

msg += browser.getSelectedItem();

g.drawString(msg, 6, 140);

13. import java.applet.Applet;

import java.awt.*;

// Create frame window.

public class MenuDemo extends Applet {

Frame f;

MCA-III Page 163


JAVA
/* <applet code=MenuDemo width=300 height=100>

</applet>*/

public void init() {

f = new MenuFrame("Menu Demo");

int width = Integer.parseInt(getParameter("width"));

int height = Integer.parseInt(getParameter("height"));

setSize(new Dimension(width, height));

f.setSize(width, height);

f.setVisible(true);

public void start() {

f.setVisible(true);

public void stop() {

f.setVisible(false);

14. // Illustrate menus.

MCA-III Page 164


JAVA
import java.awt.*;

import java.awt.event.*;

import java.applet.*;

/*

<applet code="MenuDemo" width=250 height=250>

</applet>

*/

// Create a subclass of Frame

class MenuFrame extends Frame {

String msg = "";

CheckboxMenuItem debug, test;

MenuFrame(String title) {

super(title);

// create menu bar and add it to frame

MenuBar mbar = new MenuBar();

setMenuBar(mbar);

// create the menu items

Menu file = new Menu("File");

MCA-III Page 165


JAVA
MenuItem item1, item2, item3, item4, item5;

file.add(item1 = new MenuItem("New..."));

file.add(item2 = new MenuItem("Open..."));

file.add(item3 = new MenuItem("Close"));

file.add(item4 = new MenuItem("-"));

file.add(item5 = new MenuItem("Quit..."));

mbar.add(file);

Menu edit = new Menu("Edit");

MenuItem item6, item7, item8, item9;

edit.add(item6 = new MenuItem("Cut"));

edit.add(item7 = new MenuItem("Copy"));

edit.add(item8 = new MenuItem("Paste"));

edit.add(item9 = new MenuItem("-"));

Menu sub = new Menu("Special");

MenuItem item10, item11, item12;

sub.add(item10 = new MenuItem("First"));

sub.add(item11 = new MenuItem("Second"));

sub.add(item12 = new MenuItem("Third"));

edit.add(sub);

// these are checkable menu items

MCA-III Page 166


JAVA
debug = new CheckboxMenuItem("Debug");

edit.add(debug);

test = new CheckboxMenuItem("Testing");

edit.add(test);

mbar.add(edit);

// create an object to handle action and item events

MyMenuHandler handler = new MyMenuHandler(this);

// register it to receive those events

item1.addActionListener(handler);

item2.addActionListener(handler);

item3.addActionListener(handler);

item4.addActionListener(handler);

item5.addActionListener(handler);

item6.addActionListener(handler);

item7.addActionListener(handler);

item8.addActionListener(handler);

item9.addActionListener(handler);

item10.addActionListener(handler);

item11.addActionListener(handler);

item12.addActionListener(handler);

MCA-III Page 167


JAVA
debug.addItemListener(handler);

test.addItemListener(handler);

// create an object to handle window events

MyWindowAdapter adapter = new MyWindowAdapter(this);

// register it to receive those events

addWindowListener(adapter);

public void paint(Graphics g) {

g.drawString(msg, 10, 200);

if(debug.getState())

g.drawString("Debug is on.", 10, 220);

else

g.drawString("Debug is off.", 10, 220);

if(test.getState())

g.drawString("Testing is on.", 10, 240);

else

g.drawString("Testing is off.", 10, 240);

MCA-III Page 168


JAVA
}

class MyWindowAdapter extends WindowAdapter {

MenuFrame menuFrame;

public MyWindowAdapter(MenuFrame menuFrame) {

this.menuFrame = menuFrame;

public void windowClosing(WindowEvent we) {

menuFrame.setVisible(false);

class MyMenuHandler implements ActionListener, ItemListener {

MenuFrame menuFrame;

public MyMenuHandler(MenuFrame menuFrame) {

this.menuFrame = menuFrame;

// Handle action events

public void actionPerformed(ActionEvent ae) {

String msg = "You selected ";

String arg = (String)ae.getActionCommand();

if(arg.equals("New..."))

MCA-III Page 169


JAVA
msg += "New.";

else if(arg.equals("Open..."))

msg += "Open.";

else if(arg.equals("Close"))

msg += "Close.";

else if(arg.equals("Quit..."))

msg += "Quit.";

else if(arg.equals("Edit"))

msg += "Edit.";

else if(arg.equals("Cut"))

msg += "Cut.";

else if(arg.equals("Copy"))

msg += "Copy.";

else if(arg.equals("Paste"))

msg += "Paste.";

else if(arg.equals("First"))

msg += "First.";

else if(arg.equals("Second"))

msg += "Second.";

else if(arg.equals("Third"))

msg += "Third.";

else if(arg.equals("Debug"))

MCA-III Page 170


JAVA
msg += "Debug.";

else if(arg.equals("Testing"))

msg += "Testing.";

menuFrame.msg = msg;

menuFrame.repaint();

// Handle item events

public void itemStateChanged(ItemEvent ie) {

menuFrame.repaint();

/*

// Create frame window.

public class MenuDemo extends Applet {

Frame f;

public void init() {

f = new MenuFrame("Menu Demo");

int width = Integer.parseInt(getParameter("width"));

int height = Integer.parseInt(getParameter("height"));

setSize(new Dimension(width, height));

MCA-III Page 171


JAVA

f.setSize(width, height);

f.setVisible(true);

public void start() {

f.setVisible(true);

public void stop() {

f.setVisible(false);

*/

13. // Demonstrate Dialog box.

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

/*

<applet code="DialogDemo" width=250 height=250>

</applet>

*/

MCA-III Page 172


JAVA

// Create a subclass of Dialog.

class SampleDialog extends Dialog implements ActionListener {

SampleDialog(Frame parent, String title) {

super(parent, title, false);

setLayout(new FlowLayout());

setSize(300, 200);

add(new Label("Press this button:"));

Button b;

add(b = new Button("Cancel"));

b.addActionListener(this);

public void actionPerformed(ActionEvent ae) {

dispose();

public void paint(Graphics g) {

g.drawString("This is in the dialog box", 10, 70);

MCA-III Page 173


JAVA

// Create a subclass of Frame.

class MenuFrame extends Frame {

String msg = "";

CheckboxMenuItem debug, test;

MenuFrame(String title) {

super(title);

// create menu bar and add it to frame

MenuBar mbar = new MenuBar();

setMenuBar(mbar);

// create the menu items

Menu file = new Menu("File");

MenuItem item1, item2, item3, item4;

file.add(item1 = new MenuItem("New..."));

file.add(item2 = new MenuItem("Open..."));

file.add(item3 = new MenuItem("Close"));

file.add(new MenuItem("-"));

file.add(item4 = new MenuItem("Quit..."));

mbar.add(file);

MCA-III Page 174


JAVA

Menu edit = new Menu("Edit");

MenuItem item5, item6, item7;

edit.add(item5 = new MenuItem("Cut"));

edit.add(item6 = new MenuItem("Copy"));

edit.add(item7 = new MenuItem("Paste"));

edit.add(new MenuItem("-"));

Menu sub = new Menu("Special", true);

MenuItem item8, item9, item10;

sub.add(item8 = new MenuItem("First"));

sub.add(item9 = new MenuItem("Second"));

sub.add(item10 = new MenuItem("Third"));

edit.add(sub);

// these are checkable menu items

debug = new CheckboxMenuItem("Debug");

edit.add(debug);

test = new CheckboxMenuItem("Testing");

edit.add(test);

mbar.add(edit);

MCA-III Page 175


JAVA

// create an object to handle action and item events

MyMenuHandler handler = new MyMenuHandler(this);

// register it to receive those events

item1.addActionListener(handler);

item2.addActionListener(handler);

item3.addActionListener(handler);

item4.addActionListener(handler);

item5.addActionListener(handler);

item6.addActionListener(handler);

item7.addActionListener(handler);

item8.addActionListener(handler);

item9.addActionListener(handler);

item10.addActionListener(handler);

debug.addItemListener(handler);

test.addItemListener(handler);

// create an object to handle window events

MyWindowAdapter adapter = new MyWindowAdapter(this);

// register it to receive those events

addWindowListener(adapter);

MCA-III Page 176


JAVA
}

public void paint(Graphics g) {

g.drawString(msg, 10, 200);

if(debug.getState())

g.drawString("Debug is on.", 10, 220);

else

g.drawString("Debug is off.", 10, 220);

if(test.getState())

g.drawString("Testing is on.", 10, 240);

else

g.drawString("Testing is off.", 10, 240);

class MyWindowAdapter extends WindowAdapter {

MenuFrame menuFrame;

public MyWindowAdapter(MenuFrame menuFrame) {

this.menuFrame = menuFrame;

public void windowClosing(WindowEvent we) {

MCA-III Page 177


JAVA
menuFrame.dispose();

class MyMenuHandler implements ActionListener, ItemListener {

MenuFrame menuFrame;

public MyMenuHandler(MenuFrame menuFrame) {

this.menuFrame = menuFrame;

// Handle action events

public void actionPerformed(ActionEvent ae) {

String msg = "You selected ";

String arg = (String)ae.getActionCommand();

// Activate a dialog box when New is selected.

if(arg.equals("New...")) {

msg += "New.";

SampleDialog d = new

SampleDialog(menuFrame, "New Dialog Box");

d.setVisible(true);

// Try defining other dialog boxes for these options.

else if(arg.equals("Open..."))

MCA-III Page 178


JAVA
msg += "Open.";

else if(arg.equals("Close"))

msg += "Close.";

else if(arg.equals("Quit..."))

msg += "Quit.";

else if(arg.equals("Edit"))

msg += "Edit.";

else if(arg.equals("Cut"))

msg += "Cut.";

else if(arg.equals("Copy"))

msg += "Copy.";

else if(arg.equals("Paste"))

msg += "Paste.";

else if(arg.equals("First"))

msg += "First.";

else if(arg.equals("Second"))

msg += "Second.";

else if(arg.equals("Third"))

msg += "Third.";

else if(arg.equals("Debug"))

msg += "Debug.";

else if(arg.equals("Testing"))

MCA-III Page 179


JAVA
msg += "Testing.";

menuFrame.msg = msg;

menuFrame.repaint();

public void itemStateChanged(ItemEvent ie) {

menuFrame.repaint();

/*

// Create frame window.

public class DialogDemo extends Applet {

Frame f;

public void init() {

f = new MenuFrame("Menu Demo");

int width = Integer.parseInt(getParameter("width"));

int height = Integer.parseInt(getParameter("height"));

setSize(width, height);

f.setSize(width, height);

MCA-III Page 180


JAVA
f.setVisible(true);

public void start() {

f.setVisible(true);

public void stop() {

f.setVisible(false);

*/

14. /* Demonstrate File Dialog box.

This is an application, not an applet.

*/

import java.awt.*;

import java.awt.event.*;

// Create a subclass of Frame

class SampleFrame extends Frame {

SampleFrame(String title) {

MCA-III Page 181


JAVA
super(title);

// create an object to handle window events

MyWindowAdapter adapter = new MyWindowAdapter(this);

// register it to receive those events

addWindowListener(adapter);

class MyWindowAdapter extends WindowAdapter {

SampleFrame sampleFrame;

public MyWindowAdapter(SampleFrame sampleFrame) {

this.sampleFrame = sampleFrame;

public void windowClosing(WindowEvent we) {

sampleFrame.setVisible(false);

// Create frame window.

class FileDialogDemo {

public static void main(String args[]) {

Frame f = new SampleFrame("File Dialog Demo");

MCA-III Page 182


JAVA
f.setVisible(true);

f.setSize(100, 100);

FileDialog fd = new FileDialog(f, "File Dialog");

fd.setVisible(true);

15. // Demonstrate scroll bars.

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

/*

<applet code="SBDemo" width=300 height=200>

</applet>

*/

public class SBDemo extends Applet

implements AdjustmentListener, MouseMotionListener {

String msg = "";

Scrollbar vertSB, horzSB;

public void init() {

MCA-III Page 183


JAVA
int width = Integer.parseInt(getParameter("width"));

int height = Integer.parseInt(getParameter("height"));

vertSB = new Scrollbar(Scrollbar.VERTICAL,

0, 1, 0, height);

horzSB = new Scrollbar(Scrollbar.HORIZONTAL,

0, 1, 0, width);

add(vertSB);

add(horzSB);

// register to receive adjustment events

vertSB.addAdjustmentListener(this);

horzSB.addAdjustmentListener(this);

addMouseMotionListener(this);

public void adjustmentValueChanged(AdjustmentEvent ae) {

repaint();

MCA-III Page 184


JAVA
// Update scroll bars to reflect mouse dragging.

public void mouseDragged(MouseEvent me) {

int x = me.getX();

int y = me.getY();

vertSB.setValue(y);

horzSB.setValue(x);

repaint();

// Necessary for MouseMotionListener

public void mouseMoved(MouseEvent me) {

// Display current value of scroll bars.

public void paint(Graphics g) {

msg = "Vertical: " + vertSB.getValue();

msg += ", Horizontal: " + horzSB.getValue();

g.drawString(msg, 6, 160);

// show current mouse drag position

g.drawString("*", horzSB.getValue(),

vertSB.getValue());

MCA-III Page 185


JAVA
}

16. // Demonstrate TextArea.

import java.awt.*;

import java.applet.*;

/*

<applet code="TextAreaDemo" width=300 height=250>

</applet>

*/

public class TextAreaDemo extends Applet {

public void init() {

String val = "There are two ways of constructing " +

"a software design.\n" +

"One way is to make it so simple\n" +

"that there are obviously no deficiencies.\n" +

"And the other way is to make it so complicated\n" +

"that there are no obvious deficiencies.\n\n" +

" -C.A.R. Hoare\n\n" +

"There's an old story about the person who wished\n" +

"his computer were as easy to use as his telephone.\n" +

"That wish has come true,\n" +

MCA-III Page 186


JAVA
"since I no longer know how to use my telephone.\n\n" +

" -Bjarne Stroustrup, AT&T, (inventor of C++)";

TextArea text = new TextArea(val, 10, 30);

add(text);

17. // Demonstrate text field.

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

/*

<applet code="TextFieldDemo" width=380 height=150>

</applet>

*/

public class TextFieldDemo extends Applet

implements ActionListener {

TextField name, pass;

public void init() {

MCA-III Page 187


JAVA
Label namep = new Label("Name: ", Label.RIGHT);

Label passp = new Label("Password: ", Label.RIGHT);

name = new TextField(12);

pass = new TextField(8);

pass.setEchoChar('?');

add(namep);

add(name);

add(passp);

add(pass);

// register to receive action events

name.addActionListener(this);

pass.addActionListener(this);

// User pressed Enter.

public void actionPerformed(ActionEvent ae) {

repaint();

public void paint(Graphics g) {

MCA-III Page 188


JAVA
g.drawString("Name: " + name.getText(), 6, 60);

g.drawString("Selected text in name: "

+ name.getSelectedText(), 6, 80);

g.drawString("Password: " + pass.getText(), 6, 100);

18. // Demonstrate text field.

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

/*

<applet code="TextFieldDemo1" width=380 height=150>

</applet>

*/

class SampleFrame extends Frame {

SampleFrame(String title) {

super(title);

// create an object to handle window events

MyWindowAdapter adapter = new MyWindowAdapter(this);

// register it to receive those events

addWindowListener(adapter);

MCA-III Page 189


JAVA
}

class MyWindowAdapter extends WindowAdapter {

SampleFrame sampleFrame;

public MyWindowAdapter(SampleFrame sampleFrame) {

this.sampleFrame = sampleFrame;

public void windowClosing(WindowEvent we) {

sampleFrame.setVisible(false);

public class TextFieldDemo1 extends Applet

implements ActionListener {

TextField name, pass;

Button b1;

String s1;

Frame f;

public void init() {

MCA-III Page 190


JAVA
Label namep = new Label("Name: ", Label.RIGHT);

Label passp = new Label("Password: ", Label.RIGHT);

name = new TextField(12);

pass = new TextField(8);

pass.setEchoChar('?');

b1=new Button("ok");

add(namep);

add(name);

add(passp);

add(pass);

add(b1);

// register to receive action events

name.addActionListener(this);

pass.addActionListener(this);

b1.addActionListener(this);

// User pressed Enter.

public void actionPerformed(ActionEvent ae) {

MCA-III Page 191


JAVA
repaint();

String s=ae.getActionCommand();

if(s.equals("ok"))

f=new SampleFrame("button press");

f.setSize(200,200);

f.setVisible(true);

public void paint(Graphics g) {

g.drawString("Name: " + name.getText(), 6, 60);

g.drawString("Selected text in name: " +


name.getSelectedText(), 6, 80);

g.drawString("Password: " + pass.getText(), 6, 100);

19. import java.awt.*;

import java.awt.event.*;

import java.applet.*;

MCA-III Page 192


JAVA

// Create a subclass of Dialog.

class SampleDialog1 extends Dialog implements ActionListener {

SampleDialog1(Frame parent, String title) {

super(parent, title, false);

setLayout(new FlowLayout());

setSize(300, 200);

add(new Label("Press this button:"));

Button b;

add(b = new Button("Cancel"));

b.addActionListener(this);

public void actionPerformed(ActionEvent ae) {

dispose();

public void paint(Graphics g) {

g.drawString("This is in the dialog box", 10, 70);

MCA-III Page 193


JAVA

class MenuFrame extends Frame {

String msg = "";

CheckboxMenuItem debug, test;

MenuFrame(String title) {

super(title);

// create menu bar and add it to frame

MenuBar mbar = new MenuBar();

setMenuBar(mbar);

// create the menu items

Menu file = new Menu("File");

MenuItem item1, item2, item3, item4;

file.add(item1 = new MenuItem("New..."));

file.add(item2 = new MenuItem("Open..."));

file.add(item3 = new MenuItem("Close"));

file.add(new MenuItem("-"));

file.add(item4 = new MenuItem("Quit..."));

mbar.add(file);

MCA-III Page 194


JAVA

// these are checkable menu items

debug = new CheckboxMenuItem("Debug");

file.add(debug);

test = new CheckboxMenuItem("Testing");

file.add(test);

// create an object to handle action and item events

MyMenuHandler handler = new MyMenuHandler(this);

// register it to receive those events

item1.addActionListener(handler);

item2.addActionListener(handler);

item3.addActionListener(handler);

item4.addActionListener(handler);

debug.addItemListener(handler);

test.addItemListener(handler);

// create an object to handle window events

MCA-III Page 195


JAVA
MyWindowAdapter adapter = new MyWindowAdapter(this);

// register it to receive those events

addWindowListener(adapter);

public void paint(Graphics g) {

g.drawString(msg, 10, 200);

if(debug.getState())

g.drawString("Debug is on.", 10, 220);

else

g.drawString("Debug is off.", 10, 220);

if(test.getState())

g.drawString("Testing is on.", 10, 240);

else

g.drawString("Testing is off.", 10, 240);

class MyWindowAdapter extends WindowAdapter {

MenuFrame menuFrame;

public MyWindowAdapter(MenuFrame menuFrame) {

MCA-III Page 196


JAVA
this.menuFrame = menuFrame;

public void windowClosing(WindowEvent we) {

menuFrame.dispose();

class MyMenuHandler implements ActionListener, ItemListener {

MenuFrame menuFrame;

public MyMenuHandler(MenuFrame menuFrame) {

this.menuFrame = menuFrame;

// Handle action events

public void actionPerformed(ActionEvent ae) {

String msg = "You selected ";

String arg = (String)ae.getActionCommand();

// Activate a dialog box when New is selected.

if(arg.equals("New...")) {

msg += "New.";

MCA-III Page 197


JAVA
SampleDialog1 d = new SampleDialog1(menuFrame, "New
Dialog Box");

d.setVisible(true);

System.out.println("Hello World!");

// Try defining other dialog boxes for these options.

else if(arg.equals("Open...")){

msg += "Open.";

FileDialog d = new

FileDialog(menuFrame, "open Dialog


Box",FileDialog.LOAD);

d.setVisible(true);

else if(arg.equals("Quit"))

msg += "Quite.";

else if(arg.equals("Close"))

msg += "Close.";

else if(arg.equals("Debug"))

msg += "Debug.";

else if(arg.equals("Testing"))

msg += "Testing.";

MCA-III Page 198


JAVA
menuFrame.msg = msg;

menuFrame.repaint();

public void itemStateChanged(ItemEvent ie) {

menuFrame.repaint();

class f1

public static void main(String[] args)

Frame f;

f = new MenuFrame("Menu Demo");

f.setSize(300, 300);

f.setVisible(true);

MCA-III Page 199


JAVA

SWINGS PROGRAMS
1. import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

/*

<applet code="JButtonDemo" width=250 height=300>

</applet>

*/

public class JButtonDemo extends JApplet

implements ActionListener {

JTextField jtf;

public void init() {

// Get content pane

Container contentPane = getContentPane();

contentPane.setLayout(new FlowLayout());

// Add buttons to content pane

MCA-III Page 200


JAVA
ImageIcon france = new ImageIcon("france.gif");

JButton jb = new JButton(france);

jb.setActionCommand("France");

jb.addActionListener(this);

contentPane.add(jb);

ImageIcon germany = new ImageIcon("germany.gif");

jb = new JButton(germany);

jb.setActionCommand("Germany");

jb.addActionListener(this);

contentPane.add(jb);

ImageIcon italy = new ImageIcon("italy.gif");

jb = new JButton(italy);

jb.setActionCommand("Italy");

jb.addActionListener(this);

contentPane.add(jb);

ImageIcon japan = new ImageIcon("japan.gif");

jb = new JButton(japan);

jb.setActionCommand("Japan");

jb.addActionListener(this);

MCA-III Page 201


JAVA
contentPane.add(jb);

// Add text field to content pane

jtf = new JTextField(15);

contentPane.add(jtf);

public void actionPerformed(ActionEvent ae) {

jtf.setText(ae.getActionCommand());

2. import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

/*

<applet code="JCheckBoxDemo" width=400 height=50>

</applet>

*/

public class JCheckBoxDemo extends JApplet

implements ItemListener {

JTextField jtf;

MCA-III Page 202


JAVA

public void init() {

// Get content pane

Container contentPane = getContentPane();

contentPane.setLayout(new FlowLayout());

// Create icons

ImageIcon normal = new ImageIcon("normal.gif");

ImageIcon rollover = new ImageIcon("rollover.gif");

ImageIcon selected = new ImageIcon("selected.gif");

// Add check boxes to the content pane

JCheckBox cb = new JCheckBox("C", normal);

cb.setRolloverIcon(rollover);

cb.setSelectedIcon(selected);

cb.addItemListener(this);

contentPane.add(cb);

cb = new JCheckBox("C++", normal);

cb.setRolloverIcon(rollover);

cb.setSelectedIcon(selected);

MCA-III Page 203


JAVA
cb.addItemListener(this);

contentPane.add(cb);

cb = new JCheckBox("Java", normal);

cb.setRolloverIcon(rollover);

cb.setSelectedIcon(selected);

cb.addItemListener(this);

contentPane.add(cb);

cb = new JCheckBox("Perl", normal);

cb.setRolloverIcon(rollover);

cb.setSelectedIcon(selected);

cb.addItemListener(this);

contentPane.add(cb);

// Add text field to the content pane

jtf = new JTextField(15);

contentPane.add(jtf);

public void itemStateChanged(ItemEvent ie) {

JCheckBox cb = (JCheckBox)ie.getItem();

MCA-III Page 204


JAVA
jtf.setText(cb.getText());

3. import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

/*

<applet code="JComboBoxDemo" width=300 height=100>

</applet>

*/

public class JComboBoxDemo extends JApplet

implements ItemListener {

JLabel jl;

ImageIcon france, germany, italy, japan;

public void init() {

// Get content pane

Container contentPane = getContentPane();

contentPane.setLayout(new FlowLayout());

MCA-III Page 205


JAVA
// Create a combo box and add it

// to the panel

JComboBox jc = new JComboBox();

jc.addItem("France");

jc.addItem("Germany");

jc.addItem("Italy");

jc.addItem("Japan");

jc.addItemListener(this);

contentPane.add(jc);

// Create label

jl = new JLabel(new ImageIcon("france.gif"));

contentPane.add(jl);

public void itemStateChanged(ItemEvent ie) {

String s = (String)ie.getItem();

jl.setIcon(new ImageIcon(s + ".gif"));

4. import java.awt.*;

import javax.swing.*;

MCA-III Page 206


JAVA
/*

<applet code="JLabelDemo" width=250 height=150>

</applet>

*/

public class JLabelDemo extends JApplet {

public void init() {

// Get content pane

Container contentPane = getContentPane();

// Create an icon

ImageIcon ii = new ImageIcon("france.gif");

// Create a label

JLabel jl = new JLabel("France", ii, JLabel.CENTER);

// Add label to the content pane

contentPane.add(jl);

5. import java.awt.*;

MCA-III Page 207


JAVA
import java.awt.event.*;

import javax.swing.*;

/*

<applet code="JRadioButtonDemo" width=300 height=50>

</applet>

*/

public class JRadioButtonDemo extends JApplet

implements ActionListener {

JTextField tf;

public void init() {

// Get content pane

Container contentPane = getContentPane();

contentPane.setLayout(new FlowLayout());

// Add radio buttons to content pane

JRadioButton b1 = new JRadioButton("A");

b1.addActionListener(this);

contentPane.add(b1);

MCA-III Page 208


JAVA
JRadioButton b2 = new JRadioButton("B");

b2.addActionListener(this);

contentPane.add(b2);

JRadioButton b3 = new JRadioButton("C");

b3.addActionListener(this);

contentPane.add(b3);

// Define a button group

ButtonGroup bg = new ButtonGroup();

bg.add(b1);

bg.add(b2);

bg.add(b3);

// Create a text field and add it

// to the content pane

tf = new JTextField(5);

contentPane.add(tf);

public void actionPerformed(ActionEvent ae) {

tf.setText(ae.getActionCommand());

MCA-III Page 209


JAVA
}

6. import java.awt.*;

import javax.swing.*;

/*

<applet code="JScrollPaneDemo" width=300 height=250>

</applet>

*/

public class JScrollPaneDemo extends JApplet {

public void init() {

// Get content pane

Container contentPane = getContentPane();

contentPane.setLayout(new BorderLayout());

// Add 400 buttons to a panel

JPanel jp = new JPanel();

jp.setLayout(new GridLayout(20, 20));

int b = 0;

for(int i = 0; i < 20; i++) {

MCA-III Page 210


JAVA
for(int j = 0; j < 20; j++) {

jp.add(new JButton("Button " + b));

++b;

// Add panel to a scroll pane

int v =
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;

int h =
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;

JScrollPane jsp = new JScrollPane(jp, v, h);

// Add scroll pane to the content pane

contentPane.add(jsp, BorderLayout.CENTER);

7. import javax.swing.*;

/*

<applet code="JTabbedPaneDemo" width=400 height=100>

</applet>

*/

MCA-III Page 211


JAVA

public class JTabbedPaneDemo extends JApplet {

public void init() {

JTabbedPane jtp = new JTabbedPane();

jtp.addTab("Cities", new CitiesPanel());

jtp.addTab("Colors", new ColorsPanel());

jtp.addTab("Flavors", new FlavorsPanel());

getContentPane().add(jtp);

class CitiesPanel extends JPanel {

public CitiesPanel() {

JButton b1 = new JButton("New York");

add(b1);

JButton b2 = new JButton("London");

add(b2);

JButton b3 = new JButton("Hong Kong");

MCA-III Page 212


JAVA
add(b3);

JButton b4 = new JButton("Tokyo");

add(b4);

class ColorsPanel extends JPanel {

public ColorsPanel() {

JCheckBox cb1 = new JCheckBox("Red");

add(cb1);

JCheckBox cb2 = new JCheckBox("Green");

add(cb2);

JCheckBox cb3 = new JCheckBox("Blue");

add(cb3);

class FlavorsPanel extends JPanel {

public FlavorsPanel() {

MCA-III Page 213


JAVA

JComboBox jcb = new JComboBox();

jcb.addItem("Vanilla");

jcb.addItem("Chocolate");

jcb.addItem("Strawberry");

add(jcb);

8. import java.awt.*;

import javax.swing.*;

/*

<applet code="JTableDemo" width=400 height=200>

</applet>

*/

public class JTableDemo extends JApplet {

public void init() {

// Get content pane

MCA-III Page 214


JAVA
Container contentPane = getContentPane();

// Set layout manager

contentPane.setLayout(new BorderLayout());

// Initialize column headings

final String[] colHeads = { "Name", "Phone", "Fax" };

// Initialize data

final Object[][] data = {

{ "Gail", "4567", "8675" },

{ "Ken", "7566", "5555" },

{ "Viviane", "5634", "5887" },

{ "Melanie", "7345", "9222" },

{ "Anne", "1237", "3333" },

{ "John", "5656", "3144" },

{ "Matt", "5672", "2176" },

{ "Claire", "6741", "4244" },

{ "Erwin", "9023", "5159" },

{ "Ellen", "1134", "5332" },

{ "Jennifer", "5689", "1212" },

{ "Ed", "9030", "1313" },

MCA-III Page 215


JAVA
{ "Helen", "6751", "1415" }

};

// Create the table

JTable table = new JTable(data, colHeads);

// Add tree to a scroll pane

int v =
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;

int h =
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;

JScrollPane jsp = new JScrollPane(table, v, h);

// Add scroll pane to the content pane

contentPane.add(jsp, BorderLayout.CENTER);

9. import java.awt.*;

import javax.swing.*;

/*

<applet code="JTextFieldDemo" width=300 height=50>

</applet>

*/

MCA-III Page 216


JAVA

public class JTextFieldDemo extends JApplet {

JTextField jtf;

public void init() {

// Get content pane

Container contentPane = getContentPane();

contentPane.setLayout(new FlowLayout());

// Add text field to content pane

jtf = new JTextField(15);

contentPane.add(jtf);

10. import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.tree.*;

/*

<applet code="JTreeEvents" width=400 height=200>

</applet>

MCA-III Page 217


JAVA
*/

public class JTreeEvents extends JApplet {

JTree tree;

JTextField jtf;

public void init() {

// Get content pane

Container contentPane = getContentPane();

// Set layout manager

contentPane.setLayout(new BorderLayout());

// Create top node of tree

DefaultMutableTreeNode top = new


DefaultMutableTreeNode("Options");

// Create subtree of "A"

DefaultMutableTreeNode a = new
DefaultMutableTreeNode("A");

top.add(a);

MCA-III Page 218


JAVA
DefaultMutableTreeNode a1 = new
DefaultMutableTreeNode("A1");

a.add(a1);

DefaultMutableTreeNode a2 = new
DefaultMutableTreeNode("A2");

a.add(a2);

// Create subtree of "B"

DefaultMutableTreeNode b = new
DefaultMutableTreeNode("B");

top.add(b);

DefaultMutableTreeNode b1 = new
DefaultMutableTreeNode("B1");

b.add(b1);

DefaultMutableTreeNode b2 = new
DefaultMutableTreeNode("B2");

b.add(b2);

DefaultMutableTreeNode b3 = new
DefaultMutableTreeNode("B3");

b.add(b3);

// Create tree

tree = new JTree(top);

MCA-III Page 219


JAVA
// Add tree to a scroll pane

int v =
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;

int h =
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;

JScrollPane jsp = new JScrollPane(tree, v, h);

// Add scroll pane to the content pane

contentPane.add(jsp, BorderLayout.CENTER);

// Add text field to applet

jtf = new JTextField("", 20);

contentPane.add(jtf, BorderLayout.SOUTH);

// Anonymous inner class to handle mouse clicks

tree.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent me) {

doMouseClicked(me);

});

void doMouseClicked(MouseEvent me) {

MCA-III Page 220


JAVA
TreePath tp = tree.getPathForLocation(me.getX(), me.getY());

if(tp != null)

jtf.setText(tp.toString());

else

jtf.setText("");

11. import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.tree.*;

/*

<applet code="JTreeEvents" width=400 height=200>

</applet>

*/

public class JTreeEvents1 extends JApplet {

JTree tree;

JTextField jtf;

MCA-III Page 221


JAVA
public void init() {

// Get content pane

Container contentPane = getContentPane();

// Set layout manager

contentPane.setLayout(new BorderLayout());

// Create top node of tree

DefaultMutableTreeNode top = new


DefaultMutableTreeNode("Options");

// Create subtree of "A"

DefaultMutableTreeNode a = new
DefaultMutableTreeNode("A");

top.add(a);

DefaultMutableTreeNode a1 = new
DefaultMutableTreeNode("A1");

a.add(a1);

DefaultMutableTreeNode a2 = new
DefaultMutableTreeNode("A2");

a.add(a2);

MCA-III Page 222


JAVA
// Create subtree of "B"

DefaultMutableTreeNode b = new
DefaultMutableTreeNode("B");

top.add(b);

DefaultMutableTreeNode b1 = new
DefaultMutableTreeNode("B1");

b.add(b1);

DefaultMutableTreeNode b2 = new
DefaultMutableTreeNode("B2");

b.add(b2);

DefaultMutableTreeNode b3 = new
DefaultMutableTreeNode("B3");

b.add(b3);

// Create tree

tree = new JTree(top);

// Add tree to a scroll pane

int v =
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;

int h =
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;

JScrollPane jsp = new JScrollPane(tree, v, h);

MCA-III Page 223


JAVA
// Add scroll pane to the content pane

contentPane.add(jsp, BorderLayout.CENTER);

// Add text field to applet

jtf = new JTextField("", 20);

contentPane.add(jtf, BorderLayout.SOUTH);

// Anonymous inner class to handle mouse clicks

tree.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent me) {

doMouseClicked(me);

});

void doMouseClicked(MouseEvent me) {

TreePath tp = tree.getPathForLocation(me.getX(), me.getY());

if(tp != null)

jtf.setText(tp.toString());

else

jtf.setText("");

MCA-III Page 224


JAVA
}

NETWORKING PROGRAMS

1. //Demonstrate Sockets.

import java.net.*;

import java.io.*;

class a {

public static void main(String args[]) throws Exception {

Socket s = new Socket("localhost", 777);

InputStream in = s.getInputStream();

BufferedReader br=new BufferedReader(new


InputStreamReader(in));

OutputStream out = s.getOutputStream();

String str;

while ((str=br.readLine()) != null) {

System.out.print("fro ser"+str);

br.close();

MCA-III Page 225


JAVA
s.close();

2. // Demonstrate InetAddress.

import java.net.*;

class InetAddressTest

public static void main(String args[]) throws


UnknownHostException {

InetAddress Address = InetAddress.getLocalHost();

System.out.println(Address);

Address = InetAddress.getByName("starwave.com");

System.out.println(Address);

InetAddress SW[] =
InetAddress.getAllByName("www.nba.com");

for (int i=0; i<SW.length; i++)

System.out.println(SW[i]);

3. // Demonstrate URL.

import java.net.*;

class patrickURL {

MCA-III Page 226


JAVA
public static void main(String args[]) throws
MalformedURLException {

URL hp = new
URL("http://www.starwave.com/people/naughton/");

System.out.println("Protocol: " + hp.getProtocol());

System.out.println("Port: " + hp.getPort());

System.out.println("Host: " + hp.getHost());

System.out.println("File: " + hp.getFile());

System.out.println("Ext:" + hp.toExternalForm());

4. //Demonstrate Sockets.

import java.net.*;

import java.io.*;

class ser {

public static void main(String args[]) throws Exception {

ServerSocket ss = new ServerSocket(777);

Socket s=ss.accept();

System.out.print("connection established");

MCA-III Page 227


JAVA
OutputStream out = s.getOutputStream();

PrintStream ps=new PrintStream(out);

String str = "hello client" ;

ps.println(str);

ps.println("bye");

ps.close();

s.close();

5. // Demonstrate URLConnection.

import java.net.*;

import java.io.*;

import java.util.Date;

class UCDemo

public static void main(String args[]) throws Exception {

int c;

URL hp = new
URL("http://www.starwave.com/people/naughton/");

URLConnection hpCon = hp.openConnection();

MCA-III Page 228


JAVA
System.out.println("Date: " + new Date(hpCon.getDate()));

System.out.println("Content-Type: " +
hpCon.getContentType());

System.out.println("Expires: " + hpCon.getExpiration());

System.out.println("Last-Modified: " +

new Date(hpCon.getLastModified()));

int len = hpCon.getContentLength();

System.out.println("Content-Length: " + len);

if (len > 0) {

System.out.println("=== Content ===");

InputStream input = hpCon.getInputStream();

int i = len;

while (((c = input.read()) != -1) && (--i > 0)) {

System.out.print((char) c);

input.close();

} else {

System.out.println("No Content Available");

6. //Demonstrate Sockets.

MCA-III Page 229


JAVA
import java.net.*;

import java.io.*;

class Whois {

public static void main(String args[]) throws Exception {

int c;

Socket s = new Socket("internic.net", 43);

InputStream in = s.getInputStream();

OutputStream out = s.getOutputStream();

String str = (args.length == 0 ? "starwave-dom" : args[0]) +


"\n";

byte buf[] = str.getBytes();

out.write(buf);

while ((c = in.read()) != -1) {

System.out.print((char) c);

s.close();

7. // Demonstrate Datagrams.

import java.net.*;

MCA-III Page 230


JAVA
class WriteServer {

public static int serverPort = 666;

public static int clientPort = 999;

public static int buffer_size = 1024;

public static DatagramSocket ds;

public static byte buffer[] = new byte[buffer_size];

public static void TheServer() throws Exception {

int pos=0;

while (true) {

int c = System.in.read();

switch (c) {

case -1:

System.out.println("Server Quits.");

return;

case '\r':

break;

case '\n':

ds.send(new DatagramPacket(buffer,pos,

InetAddress.getLocalHost(),clientPort));

pos=0;

break;

MCA-III Page 231


JAVA
default:

buffer[pos++] = (byte) c;

public static void TheClient() throws Exception {

while(true) {

DatagramPacket p = new DatagramPacket(buffer,


buffer.length);

ds.receive(p);

System.out.println(new String(p.getData(), 0,
p.getLength()));

public static void main(String args[]) throws Exception {

if(args.length == 1) {

ds = new DatagramSocket(serverPort);

TheServer();

} else {

ds = new DatagramSocket(clientPort);

TheClient();

MCA-III Page 232


JAVA
}

MCA-III Page 233