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 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 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 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. 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 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 , 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 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 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 s the concept of hierarchical classification.
MCA-III
Page 8
JAVA for example: Bird
Attributes
Flying bird
Non flying bird
Attributes :
Attributes:
Robin
Swallow
Attributes
Attributes
Penguin
Kiwi
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 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 Code
Javado c
HTML files
Javac
Java Class File
Javah
Java (only file name)
Header Files
Jdb (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
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 InputStreamReader(System.in);
obj=new
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 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
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
String[ ] check()throws ArrayIndexOutOfBoundsException for (i=0;i
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
//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
int[ ][ ] findMul(int a[ ][ ],int b[ ][ ]) { int c[][]=new int[r1][c2]; for (int i=0;i
void putArray(int res[ ][ ]) { System.out.println ("The resultant "+r1+"X"+c2+" Matrix is:"); for (int i=0;i
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
System.out.println("MATRIX-2:"); y=obj2.getArray(3,2);
z=obj1.findMul(x,y); obj1.putArray(z);
//to perform the multiplication // 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
Page 39
JAVA
System.out.println("The enterd values are:"); for(int i=0;i
System.out.println("sum of enterd integers is:"); for(int i=0;i
Input & Output :
MCA-III
Page 40
JAVA
MCA-III
Page 41
JAVA Program Statement :
WAJP that reads on file name from the , 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
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
System.out.println("numbers are inserted"); for(int i=0;i
System.out.println("The following numbers are poped out."); for(int i=0;i
} }
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.*;
/*
*/
public class HelloJava extends Applet { public void paint(Graphics g) { g.drawString(“Hello Java”, 10, 100); } }
Input & Output :
MCA-III
Page 55
height = 60 >
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.*;
/*
*/
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.*; //
public class Calculator extends JApplet { public void init() { Calculator calc=new Calculator(); getContentPane().add(calc); } }
class Calculator extends J 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 Calculator() { setLayout(new BorderLayout()); result.setEditable(false); result.setSize(300,200); add(result,BorderLayout.NORTH); MCA-III
Page 63
JAVA J =new J(); .setLayout(new GridLayout(4,4));
n7=new JButton("7"); .add(n7); n7.addActionListener(this); n8=new JButton("8"); .add(n8); n8.addActionListener(this); n9=new JButton("9"); .add(n9); n9.addActionListener(this); div=new JButton("/"); .add(div); div.addActionListener(this);
n4=new JButton("4"); .add(n4); n4.addActionListener(this); n5=new JButton("5"); .add(n5); n5.addActionListener(this); MCA-III
Page 64
JAVA n6=new JButton("6"); .add(n6); n6.addActionListener(this); mul=new JButton("*"); .add(mul); mul.addActionListener(this);
n1=new JButton("1"); .add(n1); n1.addActionListener(this); n2=new JButton("2"); .add(n2); n2.addActionListener(this); n3=new JButton("3"); .add(n3); n3.addActionListener(this); minus=new JButton("-"); .add(minus); minus.addActionListener(this);
dot=new JButton("."); .add(dot); MCA-III
Page 65
JAVA dot.addActionListener(this); n0=new JButton("0"); .add(n0); n0.addActionListener(this); equal=new JButton("="); .add(equal); equal.addActionListener(this); plus=new JButton("+"); .add(plus); plus.addActionListener(this); add(,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.*; /*
*/ 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 moeleased(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 s create Pie charts. Design your own interface (with Swings & AWT).
Program :
import java.awt.*; import java.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 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 choice(1-lines,2-rectangles,3-ovals)"); ch=Integer.parseInt(input); } public void paint(Graphics g) { switch(ch) { case 1:{
MCA-III
Page 86
your
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
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 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) wrong
To output the message “TRY AGAIN”, if the answer is
(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
Page 125
JAVA while(r
System.out.println("a matrix:"); for (i=0;i
System.out.println("\nb matrix:"); for(i=0;i
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
for (int i=0; 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. */ /*
*/
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.*; /*
*/
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.*; /*
*/
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.*; /*
*/
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.*; /*
*/
public class CardLayoutDemo extends Applet implements ActionListener, MouseListener {
Checkbox Win98, winNT, solaris, mac; MCA-III
Page 143
JAVA 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 (); osCards.setLayout(cardLO); // set 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 winPan = new (); winPan.add(Win98); MCA-III
Page 144
JAVA winPan.add(winNT);
// Add other OS check boxes to a otherPan = new (); otherPan.add(solaris); otherPan.add(mac);
// add s to card deck osCards.add(winPan, "Windows"); osCards.add(otherPan, "Other");
// add cards to main applet add(osCards);
// to receive action events Win.addActionListener(this); Other.addActionListener(this);
// mouse events addMouseListener(this); }
MCA-III
Page 145
JAVA // Cycle through s. 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 moeleased(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.*; /*
*/
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.*; /*
*/
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.*; /*
*/
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);
// 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.*; /*
*/
// 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.*; /*
*/
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);
// 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.*; /*
*/
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.*; /*
*/
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.*; /*
*/
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);
// 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
Page 163
JAVA /*
*/ 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.*; /*
*/
// 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); // 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); // 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.*; /*
*/ 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);
// 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); // 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); // 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.*; /*
*/
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);
// 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.*; /*
*/
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.*; /*
*/
public class TextFieldDemo extends Applet implements ActionListener {
TextField name, ;
public void init() { MCA-III
Page 187
JAVA Label namep = new Label("Name: ", Label.RIGHT); Label p = new Label(": ", Label.RIGHT); name = new TextField(12); = new TextField(8); .setEchoChar('?');
add(namep); add(name); add(p); add();
// to receive action events name.addActionListener(this); .addActionListener(this); }
// 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(": " + .getText(), 6, 100); } } 18. // Demonstrate text field. import java.awt.*; import java.awt.event.*; import java.applet.*; /*
*/
class SampleFrame extends Frame { SampleFrame(String title) { super(title); // create an object to handle window events MyWindowAdapter adapter = new MyWindowAdapter(this); // 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, ; Button b1; String s1; Frame f; public void init() { MCA-III
Page 190
JAVA Label namep = new Label("Name: ", Label.RIGHT); Label p = new Label(": ", Label.RIGHT); name = new TextField(12); = new TextField(8); .setEchoChar('?'); b1=new Button("ok");
add(namep); add(name); add(p); add(); add(b1);
// to receive action events name.addActionListener(this); .addActionListener(this); b1.addActionListener(this); }
// 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(": " + .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);
// 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); // 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.*; /*
*/
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 = new ImageIcon(".gif"); JButton jb = new JButton(); jb.setActionCommand(""); jb.addActionListener(this); contentPane.add(jb);
ImageIcon = new ImageIcon(".gif"); jb = new JButton(); jb.setActionCommand(""); 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.*; /*
*/
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.*; /*
*/
public class JComboBoxDemo extends JApplet implements ItemListener { JLabel jl; ImageIcon , , 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 JComboBox jc = new JComboBox(); jc.addItem(""); jc.addItem(""); jc.addItem("Italy"); jc.addItem("Japan"); jc.addItemListener(this); contentPane.add(jc);
// Create label jl = new JLabel(new ImageIcon(".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 /*
*/
public class JLabelDemo extends JApplet {
public void init() { // Get content pane Container contentPane = getContentPane();
// Create an icon ImageIcon ii = new ImageIcon(".gif");
// Create a label JLabel jl = new JLabel("", 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.*; /*
*/
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.*; /*
*/
public class JScrollPaneDemo extends JApplet {
public void init() {
// Get content pane Container contentPane = getContentPane(); contentPane.setLayout(new BorderLayout());
// Add 400 buttons to a J jp = new J(); 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 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.*; /*
*/
MCA-III
Page 211
JAVA
public class JTabbedPaneDemo extends JApplet {
public void init() {
JTabbedPane jtp = new JTabbedPane(); jtp.addTab("Cities", new Cities()); jtp.addTab("Colors", new Colors()); jtp.addTab("Flavors", new Flavors()); getContentPane().add(jtp); } }
class Cities extends J {
public Cities() {
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 Colors extends J {
public Colors() {
JCheckBox cb1 = new JCheckBox("Red"); add(cb1); JCheckBox cb2 = new JCheckBox("Green"); add(cb2); JCheckBox cb3 = new JCheckBox("Blue"); add(cb3); } }
class Flavors extends J {
public Flavors() { 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.*; /*
*/
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.*; /*
*/ 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.*; /*
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.*; /*
*/
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