CS21A: Applets

Download Report

Transcript CS21A: Applets

Applets
Applets



Usually graphical in content
One way of writing Java programs
(besides applications)
Java programs that can be embedded in
HTML documents (web pages)

9/04/2005
Note: Not all web browsers automatically
support Java 2. You will have to install the
Java Plug-in, which is done automatically if
you installed Java on your machines.
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 2
JApplet



This is the “swing” version of Applets
JApplet is the newer version of the Applet
class that is used with Java’s swing GUI
components
We will be using this in class
9/04/2005
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 3
Java Applet classes

Abstract Window Toolkit (AWT)


Contain classes that provide the Java graphical
user interface (GUI) components
Java Foundation Classes


9/04/2005
Was an extension to java
Contains swing components written entirely in
java
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 4
Writing Java Applets
import javax.swing.*;
import java.awt.*;
/**This applet displays “Hello, world!” on a label.**/
public class MyApplet extends JApplet
{
private JLabel helloLabel;
public void init()
{
Container c = this.getContentPane();
c.setLayout( new FlowLayout() );
this.helloLabel = new JLabel( "Hello, world!" );
c.add( this.helloLabel );
}
}
9/04/2005
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 5
Running Java Applets


Recall that an .html needs to be created to
execute applets
Executing through an IDE



Executing through the Command Prompt


In BlueJ:, right-click on the class and select “Run
Applet”, then Click on “OK” and wait for the applet to
appear
In JCreator, create the .html file and execute that file
appletviewer file.html
Executing through a browser:


9/04/2005
Go to the folder where the .html and the .class resides
Double-click on that and wait for the browser to load
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 6
Writing Web Pages with Applets

You will have to include this in the body of
the HTML file to tell it you are embedding
an applet:
<APPLET CODE=AppletSubclass.class WIDTH=anInt
HEIGHT=anInt> </APPLET>

To embed the class file of MyApplet.java:
<APPLET CODE=MyApplet.class WIDTH=100
HEIGHT=100> </APPLET>
9/04/2005
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 7
Container and getContentPane()

Container



getContentPane()



A generic AWT container
a component that can contain other AWT
components
A method found in JApplet
This method returns the contentPane object (a
Container) for this applet.
You’ll need these to be able to add
components to your applet.
9/04/2005
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 8
public void init()



Every applet must implement one or more
of the init(), start(), and paint() methods.
This is what a browser usually looks for
when it runs applets.
You will have to include this method to
give your applet functionality
This is where you add the components to a
container and listeners to make these
components work
9/04/2005
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 9
Importing packages


To be able to use JApplet and swing
components you will have to import the
javax.swing package and to be able to use
some AWT components, you will have to
import the java.awt package.
Importing packages is a way to tell your
program that you want to include certain
java classes found in these packages
9/04/2005
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 10
AWT/Swing components
The Java Swing Components

Java’s framework for programming
lightweight GUI Components


Components



Lightweight here means that it’s written in and it runs
entirely in Java
JButton, JTextField, JTextArea, JLabel, JPanel
Others (self-study)
You will have to add these components to
an AWT container
9/04/2005
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 12
The Java Abstract Window Toolkit
(AWT)



Java’s framework for programming
Graphical User Interfaces (GUIs)
Containers
Layout Managers


9/04/2005
FlowLayout, GridLayout, BorderLayout
CardLayout, GridBagLayout (self-study)
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 13
Components



JButton: clickable visual object
JLabel: text
JTextField



JTextArea


contains editable text
methods setText() and getText()
same as JTextField but can support multiple lines
JPanel


9/04/2005
may contain other visual components
methods setLayout() and add()
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 14
Layout Managers

FlowLayout


GridLayout


divides container into an m by n grid
BorderLayout




objects are placed row by row, left to right
divides container into 5 parts
Center, North, South, East, West
e.g., add( component, “North” );
See examples
9/04/2005
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 15
Panel


A Panel is a component that can contain
other objects
We can do more complex layouts by using
Panels within the Applet

9/04/2005
or even Panels within Panels
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 16
Designing a GUI for an Applet



import java.awt.*;
import javax.swing.*;
extends JApplet



“extends” means “inherit” built-in features of JApplet (more on
this later)
Declare variables for the different visual components to
be placed on the applet
In init() method,


create visual components (use new)
establish layout manager (use setLayout())



9/04/2005
default for JApplets: BorderLayout
add visual components (use MyContainer.add())
nested layouts possible (use Panels)
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 17
GUI Example
import javax.swing.*;
import java.awt.*;
public class HelloWorldApplet2 extends JApplet
{
private JButton button;
private JTextField textField;
private JLabel label;
public void init()
{
Container c = this.getContentPane();
c.setLayout( new FlowLayout() );
label = new JLabel( "Hello, World!" );
c.add( label );
textField = new JTextField( "Enter your name here", 15 );
c.add( textField );
button = new JButton( "Click Me" );
button.addActionListener( this );
c.add( button );
}
...
9/04/2005
}
Copyright 2005, by the authors of these slides, and Ateneo de
Manila University. All rights reserved
L12: Applets
Slide 18