unit-VI - WordPress.com

Download Report

Transcript unit-VI - WordPress.com

Unit-vi
• Event handling: Delegation Event model
• Closing a frame, mouse and keyboard events
• Adapter classes,
• Concepts of Applets, differences between applets and Applications
• Life cycle of an applet
• Types of applets, creating applets, passing parameters to applets
Event handling
•An event is generated whenever a user clicks a mouse, presses or releases a key
•Event Delegation Model is used to handle events
•This process allows the program to register handlers called ‘listeners’ with objects
whose events need to be captured Handlers are automatically called when an event
takes place.
Event listeners are implemented as interfaces in Java
Steps to be followed –
•
Associate the class with the appropriate listener Interface
• Identify all components that generate events
• Identify all events to be handled
• Implement the methods of the listener and write the event handling code within
the methods
The Delegation Event Model
Event object
Event handling
methods
Event source
Event listener
The delegation model
Sources:
The mouse and keyboard and the GUI
components (Buttons, lists, checkboxes etc.)
Events:
Objects that describe a state change in a
source.
Listeners:
Objects notified when events occur.
Action Events on Buttons
ActionEvent
actionPerformed(..)
Button
ActionListener
Events
All Events are objects of Event Classes.
Events can be generated as a consequence of a
person interacting with elements in a graphical
user interface.
Events may also occur that are not directly
caused by interactions with a user interface
For example, an event may be generated
when a timer expires,
a counter exceeds a value,
a software or hardware failure occurs
Event sources
•Event source is a GUI component with which user interacts.
•Event sources may generate more than one type of event.
•A source must register listeners in order for the listeners to receive
notifications about a specific type of event.
•Each type of event has its own registration method.
•Here is the general form:
public void addTypeListener(TypeListener el)
•Here, Type is the name of the event and el is a reference to the event
listener.
•For example,the method that registers a keyboard event listener is called
addKeyListener( ).
•The method that registers a mouse motion listener is called
addMouseMotionListener( ).
Event Classes
The classes that represent events .
All event classes are defined in java.awt.event package.
Event Listeners
A listener is a class that is notified when an event occurs.
It has two major requirements:
It must have been registered with one or more sources to
receive notifications about specific types of events
It must implement methods to receive and process these
notifications.
The methods that receive and process events are defined in a set of
interfaces found in java.awt.event.
The listener class must implement listener interface to handle events.
.
Sources-events-listeners
Event Class
Description
ActionEvent
Button is pressed, list
ActionListener
item is double clicked or
a menu is selected
AdjustmentEve When scrollbar is used
nt
Interface
AdjustmentListener
ComponentEve Component is resized, ComponentListener
nt
moved, hidden or made
visible
FocusEvent
Component gains or
loses keyboard focus
FocusListener
Sources-events-listeners
Event Class Description
ItemEvent
Interface
When a menu item is
ItemListener
selected or deselected or
when a checkbox or list item
is clicked
WindowEven Window is activated, closed, WindowListener
t
opened or quit
TextEvent
Value of a text field or text
TextListener
area is changed
MouseEvent Mouse is moved, clicked,
dragged or released
MouseListener
Mouse
MotionListener
KeyEvent
KeyListener
Input is received from the
keyboard
The ActionListener Interface
•This interface defines the actionPerformed( ) method that is invoked when an
action event occurs.
•Its general form is shown here:
void actionPerformed(ActionEvent ae)
The AdjustmentListener Interface
•This interface defines the adjustmentValueChanged( ) method that is invoked
when an adjustment event occurs.
•Its general form is shown here:
void adjustmentValueChanged(AdjustmentEvent ae)
The ComponentListener Interface
•This interface defines four methods that are invoked when a component is
resized,moved, shown, or hidden.
• Their general forms are shown here:
void componentResized(ComponentEvent ce)
void componentMoved(ComponentEvent ce)
void componentShown(ComponentEvent ce)
void componentHidden(ComponentEvent ce)
•The ContainerListener Interface
•This interface contains two methods. When a component is added to a
container, componentAdded( ) is invoked. When a component is removed
from a container,componentRemoved( ) is invoked.
• Their general forms are shown here:
void componentAdded(ContainerEvent ce)
void componentRemoved(ContainerEvent ce)
•The FocusListener Interface
•This interface defines two methods. When a component obtains
keyboard focus,focusGained( ) is invoked. When a component loses
keyboard focus.focusLost( )is called.
• Their general forms are shown here:
void focusGained(FocusEvent fe)
void focusLost(FocusEvent fe)
The ItemListener Interface
void itemStateChanged(ItemEvent ie)
The KeyListener Interface
void keyPressed(KeyEvent ke)
void keyReleased(KeyEvent ke)
void keyTyped(KeyEvent ke)
The MouseListener Interface
void mouseClicked(MouseEvent me)
void mouseEntered(MouseEvent me)
void mouseExited(MouseEvent me)
void mousePressed(MouseEvent me)
void mouseReleased(MouseEvent me)
The MouseMotionListener Interface
void mouseDragged(MouseEvent me)
void mouseMoved(MouseEvent me)
Event handling steps
To handle an event you need 3 steps:
– Implement the appropriate interface that will
produce your listener class.
– Create a listener object.
– Register the listener to the source of interest.
ActionEvent
ActionListener
public interface ActionListener
{
void actionPerformed(ActionEvent me)
}
Registration method:
C_ref.addActionListener(
Listener);
class MyActionListener implements ActionListener
{
public void actionPerformed(ActionEvent ae)
{
// Handler_ code
}
}
Example
import java.awt.*;
import java.awt.event.*;
public class TestButtonAction extends
Frame{
TestButtonAction()
{
Button b=new Button(“ok”);
add(b);
b.addActionListener(new
MyActionListener( ) );
setSize(200,200);
setVisible(true);
}
public static void main(String[] args){
new TestButtonAction();
}
}
class MyActionListener implements
ActionListener
{
public void actionPerformed(ActionEvent ae )
{
System.out.println(“button clicked”);
}
}
MouseEvent
MouseListener
public interface MousListener{
void mouseClicked(MouseEvent me)
void mouseEntered(MouseEvent me)
void mouseExited(MouseEvent me)
void mousePressed(MouseEvent me)
void mouseReleased(MouseEvent me)
}
class MyMouseListener implements MouseListener
{
public void mouseClicked(MouseEvent me)
{ // Handler_ code }
public void mouseEntered(MouseEvent me)
{ // Handler_ code }
public void mouseExited(MouseEvent me)
Registration methods:
C_ref.addMouseListener(
Listener);
{ // Handler_ code }
public void mousePressed(MouseEvent me)
{ // Handler_ code }
public void mouseReleased(MouseEvent me)
{ // Handler_ code }
}
MouseEvent
MouseMotionListener
public interface MousMotionListener{
void mouseDragged(MouseEvent me)
void mouseMoved(MouseEvent me)
}
class MyMouseMotionListener implements MouseMotionListener
{
Registration method:
C_ref.addMouseMotion
Listener( Listener);
public void mouseDragged(MouseEvent me)
{ // Handler_ code }
public void mouseMoved(MouseEvent me)
{ // Handler_ code }
}
// Demonstrate the mouse event handlers using Frame window.
import java.awt.*;
import java.awt.event.*;
public class MouseEvents extends Frame {
public MouseEvents(){
addMouseListener(new ExMouse());
addMouseMotionListener(new ExMouse());
setSize(200,200);
setVisible(true);
}
public static void main(String args[]){
new MouseEvents();
}
}
class ExMouse implements MouseListener, MouseMotionListener{
// Handle mouse clicked.
public void mouseClicked(MouseEvent me) {
System.out.println( "Mouse clicked.");
}
// Handle mouse entered.
public void mouseEntered(MouseEvent me) {
System.out.println( "Mouse entered.");
}
// Handle mouse exited.
public void mouseExited(MouseEvent me) {
System.out.println("Mouse exited.");
}
// Handle button pressed.
public void mousePressed(MouseEvent me) {
System.out.println( "Down");
}
// Handle button released.
public void mouseReleased(MouseEvent me) {
System.out.println( "Up");
}
// Handle mouse dragged.
public void mouseDragged(MouseEvent me) {
System.out.println("Dragging mouse ");
}
// Handle mouse moved.
public void mouseMoved(MouseEvent me) {
// show status
System.out.println("Moving mouse ");
}
}
KeyEvent
KeyListener
public interface KeyListener{
void keyPressed(KeyEvent ke)
void keyReleased(KeyEvent ke)
void keyTyped(KeyEvent ke)
}
class MyKeyListener implements KeyListener
{
public void keyPressed(KeyEvent me)
{ // Handler_ code }
public void keyReleased(KeyEvent me)
Registration method:
C_ref.addKeyListener(
Listener);
{ // Handler_ code }
public void keyTyped(KeyEvent me)
{ // Handler_ code }
}
// Demonstrate the key event handlers.
import java.awt.*;
import java.awt.event.*;
public class SimpleKey extends Frame {
public SimpleKey() {
addKeyListener(new ExKey());
requestFocus(); // request input focus
setVisible(true);
setSize(300,200);
}
public static void main(String args[]){
new SimpleKey();
}}
class ExKey implements KeyListener{
public void keyPressed(KeyEvent ke) {
System.out.println("Key Down");
}
public void keyReleased(KeyEvent ke) {
System.out.println("Key Up");
}
public void keyTyped(KeyEvent ke) {
msg += ke.getKeyChar();
System.out.println(msg);
}
}
Handling Mouse Events using Applets
// Demonstrate the mouse event handlers.
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.
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;
// 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();
// 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);
}
}
Adapter classes
• Adapter classes are fully abstract classes that correspond to listener interfaces.
• They are extended (not implemented) and thus you can ignore methods that
do not interest you.
• You can use them instead of listeners in the case that only some of the
methods of the interface are to be used.
• You don’t use the abstract specifier and of course you cannot use multiple
inheritence.
Some adapter classes:
KeyAdapter (instead of KeyListener)
MouseAdapter (MouseListener)
MouseMotionAdapter (MouseMotionListener) etc…
Cont..
Adapter Class
Listener Interface
MouseAdapter
MouseListener
KeyAdapter
KeyListener
MouseMotionAdapter
MouseMotionListener
WindowAdapter
WindowListener
ContainerAdapter
ContainerListener
FocusAdapter
FocusListener
import java.awt.*;
import java.awt.event.*;
public class MouseEvents extends Frame {
public MouseEvents(){
addMouseListener(new ExMouse());
addMouseMotionListener(new ExMouse2());
setSize(200,200);
setVisible(true);
}
public static void main(String args[]){
new MouseEvents();
}
}
class ExMouse extends MouseAdapter{
// Handle mouse clicked.
public void mouseClicked(MouseEvent me) {
System.out.println( "Mouse clicked.");
}
}
class ExMouse2 extends MouseMotionAdapter{
// Handle mouse dragged.
public void mouseDragged(MouseEvent me) {
System.out.println("Dragging mouse at " );
}
}
• Concepts of Applets, differences between
applets and Applications
• Life cycle of an applet
• Types of applets,
• creating applets,
• passing parameters to applets
What is an applet?
Applet: A small Java program that can be inserted into a web page and
run by loading that page in a browser.
An applet is a special kind of Java program that is designed to be
transmitted over the Internet and automatically executed by a Java-
compatible web browser.
Applets are small applications that are accessed on an Internet server,
transported over the Internet, automatically installed, and run as part of
a web document.
Applet classes in Java
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Panel
java.applet.Applet
javax.swing.JApplet
How Applets Differ from Applications
Although both the Applets and stand-alone applications are Java
programs, there are certain restrictions are imposed on Applets due to
security concerns:
– Applets don’t use the main() method, but when they are loaded, automatically
call certain methods (init, start, paint, stop, destroy).
– They are embedded inside a web page and executed in browsers.
– Takes input through Graphical User Input ( GUI ).
– They cannot read from or write to the files on local computer.
– They cannot run any programs from the local computer.
The above restrictions ensures that an Applet cannot do any damage to the local
system.
1.
Applets can be embedded in HTML pages and downloaded over the Internet
whereas Applications have no special support in HTML for embedding or
downloading.
2.
Applets can only be executed inside a java compatible web browser or
appletviewer whereas Applications are executed at command line by java.
3.
After an applet arrives on the client, it has limited access to resources on local
computer. Applications have no restriction to access resources.
4.
Applets don’t have the main() method as in applications. Instead they operate on
an entirely different mechanism where they are initialized by init(),started by
start(),stopped by stop() or destroyed by destroy().
5.
A Java Applet is made up of at least one public class that has to be subclasses
from java.applet.Applet. Whereas, A Java application is made up of a main()
method declared as public static void that accepts a string array argument, along
with any other classes that main() calls.
Life cycle of an Applet
Begin
init()
Born
start()
stop()
Running
paint()
Idle
start()
destroy()
Dead
End
Life cycle of an Applet
It is important to understand the order in which these
methods are called.
When an applet is started , the following sequence of
method calls takes place:
1. init( )
2. start( )
3. paint( )
When an applet is terminated, the following sequence of
method calls takes place:
1. stop( )
2. destroy( )
Applet States
Initialisation
 The init( ) method is the first method to be called.
 This is where you should initialize variables.
This method is called only once during the run time of your applet.
Running – more than once
The start( ) method is called after init( ).
It is also called to restart an applet after it has been stopped.
It is called each time an applet’s HTML document is displayed on screen.
So, if a user leaves a web page and comes back, the applet resumes execution at start( ).
Display – more than once
 paint() happens immediately after the applet enters into the running state.
It is responsible for displaying output.
 paint( ) is also called when the applet begins execution.
 The paint( ) method is called each time your applet’s output must be redrawn.
 The paint( ) method has one parameter of type Graphics.
Idle
 The stop( ) method is called when a web browser leaves the HTML
document containing
the applet—when it goes to another page.
Dead/Destroyed State – only once
 The destroy( ) method is called when the environment determines that
your applet needs
to be removed completely from memory.
 At this point, you should free up any resources the applet may be using.
The stop( )
method is always called before destroy( ).
Building Applet Code: An Example
import java.awt.*;
import java.applet.Applet;
public class SimpleApplet extends Applet {
public void paint(Graphics g) {
g.drawString (“A Simple Applet",20, 20);
}
}
Begins with two import classes.
java.awt.*
-- required for GUI
java.applet.* -- every applet you create must be a subclass of
Applet, which is in java.applet package.
The class should start with public, because is accessed from outside.
Contd..
Applets do not begin execution at main().
An applet begins its execution when the name of its
class is passed to an applet viewer or to a java
compatible browser.
Compile the applet in the same way that we have been
compiling programs.
Running an applet involves a different process.
Running an Applet
There are two ways in which you can run an applet:
Executing the applet within a Java-compatible browser.
Using a tool called , appletviewer. An applet viewer
executes your applet in a window. This is generally the
fastest and easiest way to test your applet.
Executing in a web browser.
To execute an applet in a web browser, you need to write a short HTML file
that contains a tag ( Applet ) that loads the applet.
HTML file that contains a SimpleApplet
<APPLET code=“SimpleApplet“ width=400 height=300>
</APPLET>
Save the file with .html extension (Example: Simple.html)
After you create this file, open your browser and then load this file, which
causes SimpleApplet to be executed.
width and height specify the dimensions of the display used by the applet.
Executing by using appletviewer
There are two ways
1. Use earlier html page, which contains applet tag, then execute by using
following command.
C:\>appletviewer htmlfilename.html
2. Include a comment at the beginning of your source code file that
contains the applet tag, then start applet viewer with your java source
code file.
C:\>appletviewer SimpleApplet.java
import java.awt.*;
import java.applet.Applet;
/* <applet code=“SimpleApplet” width=200 height=60 ></applet> */
public class SimpleApplet extends Applet {
public void paint(Graphics g) {
g.drawString (“A Simple Applet",20, 20);
}
}
Four of these methods init(), start(), stop(), and destroy() are
defined by Applet.
Another, paint() is defined by the AWT Component class.
Although the above program does not do anything, it can be
compiled and run.
Structure of an applet
// An Applet AppletStructure
import java.awt.*;
import java.applet.*;
/* <applet code="AppletStructure"
width=300 height=100> </applet> */
public class AppletStructure extends Applet {
// Called first.
public void init() {
// initialization
}
/* Called second, after init(). Also called
whenever the applet is restarted. */
public void start() {
// start or resume execution
}
// Called when the applet is stopped.
public void stop() {
// suspends execution
}
/* Called when applet is terminated.
This is the last method executed. */
public void destroy() {
// perform shutdown activities
}
// Called whenever an applet's output
must be redisplayed.
public void paint(Graphics g) {
// redisplay contents of window
}
}
Creating Applets
/* A simple applet that sets the foreground and background colors and
outputs a string. */
import java.awt.*;
import java.applet.*;
/* <applet code="Sample" width=300 height=50> </applet> */
public class Sample extends Applet{
String msg;
public void init() {
// set the foreground and background colors.
setBackground(Color.cyan);
setForeground(Color.red);
msg = "Inside init( ) --";
}
public void start() {
// Initialize the string to be displayed.
msg += " Inside start( ) --";
}
public void paint(Graphics g) {
// Display msg in applet window.
msg += " Inside paint( ).";
g.drawString(msg, 60, 40);
}
}
Passing Parameters to Applet
The APPLET tag in HTML allows you to pass parameters
to your applet.
To retrieve a parameter, use the getParameter( ) method.
 It returns the value of the specified parameter in the form of
a String object.
Applet Program Accepting Parameters
import java.applet.Applet;
import java.awt.*;
/* <APPLET CODE="HelloAppletMsg" width=500 height=400>
<PARAM NAME="Greetings" VALUE="Hello Friend, How are you?">
</APPLET>
*/
public class HelloAppletMsg extends Applet {
String msg;
public void init(){
msg = getParameter("Greetings");
if( msg == null)
msg = "Hello";
This is name of parameter specified in PARAM tag;
}
This method returns the value of paramter.
public void paint(Graphics g) {
g.drawString (msg,10, 100);
}
}
Types of applets
There are two types of applets:
First is based on the Applet class
 These applets use the AWT to provide the GUI.
 This style of applet has been available since java was created.
 It is used for simple GUI’s.
The second is based on the Swing class JApplet.
 These applets use the Swing classes to provide the GUI.
 Swing offers a richer and easy to use interface than AWT .
 Swing based applets are more popular.
Simple Swing Application
import java.awt.*;
import javax.swing.*;
public class myjframe extends JFrame{
myjframe(){
Container contentPane = getContentPane();
JLabel jl=new JLabel("swing more powerful than AWT");
contentPane.add(jl);
setSize(250,250);
setVisible(true);
}
public static void main(String arg[]){
new myjframe();
}
}
The methods defined by Applet
• String getParameter(String paramName)
Returns the parameter associated with paramName. null is returned if the
specified parameter is not found.
• void showStatus(String str)
Displays str in the status window of the browser or applet viewer. If the
browser does not support a status window, then no action takes place.
• URL getCodeBase( )
Returns the URL associated with the invoking applet.
• URL getDocumentBase( )
Returns the URL of the HTML document that invokes the applet.
The HTML APPLET Tag
The syntax for the standard APPLET tag is shown here. Bracketed items
are optional.
< APPLET
[CODEBASE = codebaseURL]
CODE = appletFile
[ALT = alternateText]
[NAME = appletInstanceName]
WIDTH = pixels HEIGHT = pixels
[ALIGN = alignment]
[VSPACE = pixels] [HSPACE = pixels]
>
[< PARAM NAME = AttributeName VALUE = AttributeValue>]
[< PARAM NAME = AttributeName2 VALUE = AttributeValue>]
...
[HTML Displayed in the absence of Java]
</APPLET>
void setBackground(Color newColor)
void setForeground(Color newColor)
Here, newColor specifies the new color. The class Color defines the constants
shown here that can be used to specify colors:
Color.black
Color.magenta
Color.blue Color.orange
Color.cyan
Color.pink
Color.darkGray Color.red
Color.gray
Color.white
Color.green Color.yellow
Color.lightGray
For example, this sets the background color to green and the text color to red:
setBackground(Color.green);
setForeground(Color.red);
A good place to set the foreground and background colors is in the init( ) method.
You can obtain the current settings for the background and foreground colors by
calling getBackground( ) and getForeground( ), respectively. They are also
defined by Component and are shown here:
Color getBackground( )
Color getForeground( )
• AudioClip getAudioClip(URL url, String clipName)
Returns an AudioClip object that encapsulates the audio clip found
at the location specified by url and having the name specified by
clipName.
• Image getImage(URL url,String imageName)
Returns an Image object that encapsulates the image found at the
location specified by url and having the name specified by imageName.
• void play(URL url, String clipName)
If an audio clip is found at the location specified by url with the name
specified by clipName, the clip is played.
8). Design the user screen as follows and
handle the events appropriately.
import java.awt.*;
import java.awt.event.*;
public class AddWindow extends Frame implements ActionListener{
Label l1,l2,l3;
TextField t1,t2,t3;
Button b1,b2,cl;
AddWindow(){
super("add window");
//setting the size of the window
setSize(250,400);
l1=new Label("First Number :");
l2=new Label("Second Number:");
l3=new Label("RESULT
:");
t1=new TextField(10);
t2=new TextField(10);
t3=new TextField(10);
b1=new Button("add
");
b2=new Button("subtract
");
cl=new Button("clear");
//setting the layout of the container window
setLayout(new FlowLayout());
//adding the controls to the container window
add(l1);
add(t1);
add(l2);
add(t2);
add(l3);
add(t3);
add(b1);
add(b2);
add(cl);
b1.addActionListener(this);
b2.addActionListener(this);
cl.addActionListener(this);
if(ae.getSource()==b2)
{
int subtract=n1-n2;
t3.setText(subtract+"");
}
if(ae.getSource()==cl)
{
t1.setText("");
t2.setText("");
t3.setText("");
}
}//actionPerformed method
setVisible(true);
}
public void actionPerformed(ActionEvent ae){
int n1=Integer.parseInt(t1.getText());
int n2=Integer.parseInt(t2.getText());
if(ae.getSource()==b1)
{
int add=n1+n2;
t3.setText(add+"");
}
public static void main(String args[])
{
new AddWindow();
}//main method
}//class
Handling Mouse Events using Applets
// Demonstrate the mouse event handlers.
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.
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();
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);
}
}
/*Week 7 :
Write a Java program that works as a simple
calculator.
Use a grid layout to arrange buttons for the digits
and for the +, -,*, % operations. Add a text
field to display the result.
*/
import java.awt.event.*;
import java.applet.Applet;
import java.awt.*;
/*<applet code=Calc Width=300 Height=300 ></applet > */
public class Calc extends Applet implements ActionListener
{
TextField t;String a;int p=0,tmp=0;
Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
Button badd,bsub,bmul,bdiv,bper,beql,bc;
public void init(){
t = new TextField(50);
b0 = new Button("0");
b1 = new Button("1");
b2 = new Button("2");
b3 = new Button("3");
b4 = new Button("4");
b5 = new Button("5");
b6 = new Button("6");
b7 = new Button("7");
b8 = new Button("8");
b9 = new Button("9");
badd = new Button("+");
bsub = new Button("-");
bmul = new Button("*");
bdiv = new Button("/");
bper = new Button("%");
bc = new Button("c");
beql = new Button("=");
add(t);add(b0);add(b1);
add(b2);add(b3);add(b4);
add(b5);add(b6);add(b7);
b0.addActionListener(this);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
badd.addActionListener(this);
bsub.addActionListener(this);
bmul.addActionListener(this);
bdiv.addActionListener(this);
bper.addActionListener(this);
bc.addActionListener(this);
beql.addActionListener(this);
setLayout(new GridLayout(4,4));
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==bc)
{
if(ae.getSource()==b3){
t.setText("0");
}
if(ae.getSource()==b0)
{
int k=Integer.parseInt(t.getText());
k=k*10+0;
t.setText(String.valueOf(k));
}
if(ae.getSource()==b1)
{
int k=Integer.parseInt(t.getText());
k=k*10+1;
t.setText(String.valueOf(k));
}
if(ae.getSource()==b2)
{
int k=Integer.parseInt(t.getText());
k=k*10+2;
t.setText(String.valueOf(k));
}
int k=Integer.parseInt(t.getText());
k=k*10+3;
t.setText(String.valueOf(k));
}
if(ae.getSource()==b4)
{
int k=Integer.parseInt(t.getText());
k=k*10+4;
t.setText(String.valueOf(k));
}
if(ae.getSource()==b5)
{
int k=Integer.parseInt(t.getText());
k=k*10+5;
t.setText(String.valueOf(k));
}
if(ae.getSource()==b6)
{
int k=Integer.parseInt(t.getText());
k=k*10+6;
t.setText(String.valueOf(k));
}
if(ae.getSource()==b7)
{
int k=Integer.parseInt(t.getText());
k=k*10+7;
t.setText(String.valueOf(k));
}
if(ae.getSource()==b8)
{
int k=Integer.parseInt(t.getText());
k=k*10+8;
t.setText(String.valueOf(k));
}
if(ae.getSource()==b9) {
int k=Integer.parseInt(t.getText());
k=k*10+9;
t.setText(String.valueOf(k));
}
if(ae.getSource()==badd)
{
tmp=Integer.parseInt(t.getText());
p=1;
t.setText("0");
}
if(ae.getSource()==bsub)
{
tmp=Integer.parseInt(t.getText());
p=2;
t.setText("0");
}
if(ae.getSource()==bmul)
{
tmp=Integer.parseInt(t.getText());
p=3;
t.setText("0");
}
if(ae.getSource()==bdiv)
{
tmp=Integer.parseInt(t.getText());
if(ae.getSource()==bper)
{
tmp=Integer.parseInt(t.getText());
p=5;
t.setText("0");
}
if(ae.getSource()==beql)
{
float ewval=Integer.parseInt(t.getText());
float res=0;
switch(p)
{
case 1:
res=tmp+newval;
break;
case 2:
res=tmp-newval;
break;
case 3:
res=tmp*newval;
break;
case 4:
res=tmp/newval;
break;
case 5:
res=tmp%newval;
break;
}
t.setText(String.valueOf(res));
}
}
}
/*Week 6 : b) Develop an applet
that 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. */
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
/*<applet code=FactCompute width=300 height=300>
</applet>*/
public class FactCompute extends Applet
setLayout(new GridLayout(3,2));
add(lbl1); add(tf1);
add(lbl2); add(tf2);
implements ActionListener{
add(btn); add(clearbtn);
Button btn,clearbtn;
Label lbl1,lbl2;
TextField tf1,tf2;
public void init() {
btn=new Button("COMPUTE");
btn.addActionListener(this);
clearbtn=new Button("CLEAR");
clearbtn.addActionListener(this);
tf1=new TextField(30);
tf2=new TextField(30);
lbl1=new Label("NUMBER");
lbl2=new Label("RESULT");
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btn)
{
int a=Integer.parseInt(tf1.getText());
int fact=1;
for(int i=1;i<=a;i++)
fact*=i;
tf2.setText(""+fact);
}
else
{
tf1.setText("");
tf2.setText("");
}
}
}
// Demonstrate FlowLayout using applets
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
/*
<applet code="FlowLayoutDemo2" width=250 height=150>
</applet>
*/
public class FlowLayoutDemo2 extends Applet implements ActionListener {
String msg = "";
Button yes, no, maybe;
public void init() {
setLayout(new FlowLayout());
yes = new Button("Yes");
no = new Button("No");
maybe = new Button("Undecided");
add(yes);
add(no);
add(maybe);
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.";
}
repaint();
}
public void paint(Graphics g) {
g.drawString(msg, 6, 100);
}
}