Applets n Swings-surabhi Prakash

Click here to load reader

  • date post

    05-Apr-2018
  • Category

    Documents

  • view

    215
  • download

    0

Embed Size (px)

Transcript of Applets n Swings-surabhi Prakash

  • 8/2/2019 Applets n Swings-surabhi Prakash

    1/55

    1

    A Simple Applet

  • 8/2/2019 Applets n Swings-surabhi Prakash

    2/55

    2

    Applets and applications

    An applet is a Java program that runs on a web page Applets can be run within any modern browser

    To run modern Java applets, old browsers need an up-to-date

    Javaplugin appletviewer is a program that can run

    An application is a Java program that runs all by itself

  • 8/2/2019 Applets n Swings-surabhi Prakash

    3/55

    3

    Packages and classes

    Java supplies a huge library of pre-written code,

    ready for you to use in your programs

    Code is organized into classes

    Classes are grouped intopackages

    One way to use this code is to import it

    You can import a single class, or all the classes in a

    package

  • 8/2/2019 Applets n Swings-surabhi Prakash

    4/55

    4

    The Applet class

    To create an applet, you must import the Applet class This class is in the java.appletpackage

    TheAppletclass contains code that works with a

    browser to create a display window Capitalization matters!

    applet and Applet are different names

  • 8/2/2019 Applets n Swings-surabhi Prakash

    5/55

    5

    Importing the Applet class

    Here is the directive that you need:

    import java.applet.Applet;

    import is a keyword

    java.applet is the name of the package

    A dot ( .) separates the package from the class

    Applet is the name of the class

    There is a semicolon ( ; ) at the end

  • 8/2/2019 Applets n Swings-surabhi Prakash

    6/55

    6

    Thejava.awtpackage

    awt stands for Abstract Window Toolkit

    The java.awt package includes classes for: Drawing lines and shapes

    Drawing letters

    Setting colors

    Choosing fonts

    If its drawn on the screen, then java.awt isprobably involved!

  • 8/2/2019 Applets n Swings-surabhi Prakash

    7/557

    Importing the java.awt package

    Since you may want to use many classes from the

    java.awt package, simply import them all:

    import java.awt.*;

    The asterisk, or star (*), means all classes

    The import directives can go in any order, but must be

    the first lines in your program

  • 8/2/2019 Applets n Swings-surabhi Prakash

    8/558

    The applet so far

    import java.applet.Applet;

    import java.awt.*;

  • 8/2/2019 Applets n Swings-surabhi Prakash

    9/559

    Your applet class

    public class Drawing extends Applet { }

    Drawing is the name of your class

    Class names should always be capitalized extends Applet says that ourDrawing is a kind ofApplet, but with added capabilities Javas Applet just makes an empty window

    We are going to draw in that window The only way to make an applet is to extend Applet

  • 8/2/2019 Applets n Swings-surabhi Prakash

    10/5510

    The applet so far

    import java.applet.Applet;

    import java.awt.*;

    public class Drawing extends Applet {

    we still need to put some code in here...

    }

  • 8/2/2019 Applets n Swings-surabhi Prakash

    11/5511

    The paint method

    Our applet is going to have a method to paint some

    colored rectangles on the screen

    This method must be named paint

    paint needs to be told where on the screen it can draw This will be the only parameter it needs

    paint doesnt return any result

  • 8/2/2019 Applets n Swings-surabhi Prakash

    12/5512

    The paint method, part 2

    public void paint(Graphics g) { } public says that anyone can use this method

    void says that it does not return a result

    A Graphics (short for Graphics context) is an objectthat holds information about a painting It remembers what color you are using

    It remembers what font you are using

    You can paint on it (but it doesnt remember what youhave painted)

  • 8/2/2019 Applets n Swings-surabhi Prakash

    13/5513

    The applet so far

    import java.applet.Applet;

    import java.awt.*;

    public class Drawing extends Applet {

    public void paint(Graphics g) {

    we still need to put some code in here }

    }

  • 8/2/2019 Applets n Swings-surabhi Prakash

    14/5514

    Colors

    The java.awtpackage defines a class named Color There are 13 predefined colorshere are their fully-qualified

    names:

    For compatibility with older programs (before the naming

    conventions were established), Java also allows color names

    in lowercase: Color.black, Color.darkGray, etc.

    Color.BLACK Color.PINK Color.GREENColor.DARK_GRAY Color.RED Color.CYAN

    Color.GRAY Color.ORANGE Color.BLUE

    Color.LIGHT_GRAY Color.YELLOW

    Color.WHITE Color.MAGENTA

  • 8/2/2019 Applets n Swings-surabhi Prakash

    15/5515

    New colors

    Every color is a mix of red, green, and blue

    You can make your own colors:

    new Color(red,green,blue)

    Amounts range from 0 to 255 Black is (0, 0, 0), white is (255, 255, 255)

    We are mixing lights, not pigments

    Yellow is red + green, or (255, 255, 0)

  • 8/2/2019 Applets n Swings-surabhi Prakash

    16/5516

    Setting a color

    To use a color, we tell our Graphicsgwhat color we

    want:

    g.setColor(Color.RED);

    g will remember this color and use it for everything untilwe tell it some different color

  • 8/2/2019 Applets n Swings-surabhi Prakash

    17/5517

    The paint method so far

    public void paint(Graphics g) {

    g.setColor(Color.BLUE);

    draw a rectangle

    g.setColor(Color.RED); draw another rectangle

    }

    }

  • 8/2/2019 Applets n Swings-surabhi Prakash

    18/5518

    Javas coordinate system

    Java uses an (x, y) coordinate system

    (0, 0) is the top left corner

    (50, 0) is 50 pixels to the right of (0, 0) (0, 20) is 20 pixels down from (0, 0)

    (w - 1, h - 1) is just inside the bottom right corner, where w

    is the width of the window and h is its height

    (0, 0)

    (0, 20)

    (50, 0)

    (50, 20)

    (w-1, h-1)

  • 8/2/2019 Applets n Swings-surabhi Prakash

    19/5519

    Drawing rectangles

    There are two ways to draw rectangles: g.drawRect(left,top,width,height);

    g.fillRect(left,top,width,height);

  • 8/2/2019 Applets n Swings-surabhi Prakash

    20/5520

    The complete applet

    import java.applet.Applet;

    import java.awt.*;

    public class Drawing extends Applet {

    public void paint(Graphics g) {

    g.setColor(Color.BLUE);

    g.fillRect(20, 20, 50, 30);g.setColor(Color.RED);

    g.fillRect(50, 30, 50, 30);

    }

    }

  • 8/2/2019 Applets n Swings-surabhi Prakash

    21/5521

    Some more java.awt methods

    g.drawLine(x1 ,y1,x2 ,y2 );

    g.drawOval( left,top,width,height);

    g.fillOval( left,top,width,height);

    g.drawRoundRect( left,top,width,height);

    g.fillRoundRect( left,top ,width,height); g.drawArc( left,top,width,height,

    startAngle,arcAngle ); g.drawString(string,x,y);

  • 8/2/2019 Applets n Swings-surabhi Prakash

    22/55

    22

    The HTML page

    You can only run an applet in an HTML page The HTML looks something like this:

    DrawingApplet Applet

  • 8/2/2019 Applets n Swings-surabhi Prakash

    23/55

    Java

    GUI building with Swing

  • 8/2/2019 Applets n Swings-surabhi Prakash

    24/55

    24

    AWT (Abstract Window Toolkit)

    Present in all Java implementations Described in (almost) every Java textbook

    Adequate for many applications

    Uses the controls defined by your OS (whatever it is) therefore it's least common denominator

    Difficult to build an attractive GUI

    import java.awt.*;import java.awt.event.*;

  • 8/2/2019 Applets n Swings-surabhi Prakash

    25/55

    25

    Swing

    Present in all modern Java implementations (since 1.2) More controls, and they are more flexible Gives a choice of look and feel packages Much easier to build an attractive GUI import javax.swing.*;

    import javax.swing.event.*;

    and

    import java.awt.*;import java.awt.event.*; You may not need allof these packages

  • 8/2/2019 Applets n Swings-surabhi Prakash

    26/55

    26

    Swing vs. AWT

    Swing is built on top of AWT, so you need to import AWT

    and use a few things from it

    Swing is bigger and slower

    Swing is more flexible and better looking

    Swing and AWT are incompatible--you can use either, but you

    cant mix them Actually, you can, but its tricky and not worth doing

    Basic controls are practically the same in both AWT: Button b = new Button ("OK");

    Swing: JButton b = new JButton("OK");

    Swing givesfar more options for everything (buttons with

    pictures on them, etc.)

  • 8/2/2019 Applets n Swings-surabhi Prakash

    27/55

    AWT Class Hierarchy

    27

  • 8/2/2019 Applets n Swings-surabhi Prakash

    28/55

    28

    To build a GUI...

    1. Make somewhere to display things (a Container) Usually you would use a JFrame or a JApplet

    2. Create some Components (buttons, text areas, panels, etc.) Its usually best to declare Components as instance variables, and

    Define them in your applets init() method or in some applicationmethod

    3. Add your Components to your display area Choose a layout manager Add your Components to yourJFrame orJApplet according to the

    rules for your layout manager

    4. Attach Listeners to your Components Interacting with