Академический Документы
Профессиональный Документы
Культура Документы
JAVA APPLET
Contents
Chapter - 9 Applet Fundamentals
Java Components
LayOut Manager
Page - 1
Java Programming
Chapter - 9
APPLET Fundamentals
Objectives :
At the end of this chapter
Java Components
Applets are small program, accessed on the internet server, transported over the internet
automatically installed and run at client browser.
Applet do not require main() method
Applet run under appletviewer or Browser
Applet class must be declared public as it will be accessed by other classes
Applet class begin with two import statements.
import java.awt.*
import java.applet.*
Page - 2
Java Programming
init
Stop
paint
init()
start()
paint()
Stop
Destroy
stop()
destroy()
Examples
import java.awt.*;
import java.applet.Applet;
/*
<applet code="HelloWorld" width=200
height=200> </applet>
*/
public class HelloWorld extends Applet
{
String msg;
public void init()
{
msg="in init : ";
}
public void start()
{
msg=msg+"in start : ";
}
Page - 3
Java Programming
Java Components
Visual components
Container components
Menu components
Common methods
getSize() returns height and width
getForground()
get Background()
setFont()
setEnabled(boolean b)
setSize(int width, int height)
setBounds(int x, int y, int width, int height)
setVisible(boolean b)
Visual components
Button
FileDialog
ScrollBar
Canvas
Label
TextArea
Checkbox
List
TextField
Choice
ScrollPane
Page - 4
Java Programming
Label
A Label is a displayed Label object. It is usually used to help indicate what other parts of the
GUI do, such as the purpose of a neighboring text field.
Methods :
GetText()
SetText(String s)
GetAligned()
SetAligned(int al)
Public final static int CENTER / LEFT / RIGHT
Button
A Button has a single line label and may be "pushed" with a mouse click.
Constructor public Button()
public Button(String label)
Methods
GetLabel()
setLabel(String s)
GetActionCommand()
SetLabel(String label)
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;
/*
<applet code="MyApplet" width=200
height=300> </applet>
*/
public class MyApplet extends Applet
implements ActionListener
{
Button b1,b2,b3;
String msg="Welcome";
public void init()
{
b1=new Button("OK");
b2=new Button("Cancel");
b3=new Button("Exit");
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
add(b1);
add(b2);
add(b3);
msg=b1.getLabel()+"
"+b2.getLabel()+"
"+b3.getLabel();
repaint();
}
public void actionPerformed(ActionEvent
ae)
{
if(ae.getSource()==b1)
msg=b1.getLabel();
if(ae.getSource()==b2)
msg=b2.getLabel();
if(ae.getSource()==b3)
msg=b3.getLabel();
//msg=x.getLabel();
msg=msg+" and Command
"+ae.getActionCommand();
repaint();
}
public void paint(Graphics g)
{
g.drawString(msg,50,50);
}
}
Page - 5
Java Programming
TextField
A TextField is a scrollable text display object with one row of characters. The preferred width
of the field may be specified during construction and an initial string may be specified.
TextComponent is superclass of TextField and TextArea
GetSelectionStart()
getSelectionEnd()
TextField()
TextField(str)
TextField(col) TextField(str,col)
GetText()
SetText()
GetColumns()
SetColumns()
SetEchoChar()
GetEchoChar()
GetSelectedText()
SetSelectedText()
Select(start,end)
SetEditable(bool)
IsEditable()
Tips:
Call setEditable(false) to make the field read-only.
The constructor has an optional width parameter.
This does not control the number of characters in the TextField, but is merely a suggestion of
the preferred width on the screen. Note that layout managers may choose to respect or ignore
this preferred width.
For password fields:
field.setEchoChar('?');
To clear/reset:
field.setEchoChar((char)0);
CheckBoxes
Checkbox(String label, boolean b,CheckboxGroup cbg)
get CheckboxGroup()
getLabel()
getSelectedObject()
boolean getState()
set CheckboxGroup(CheckboxGroup cbg)
setLabel(String s)
setState(boolean b)
Page - 6
Java Programming
import java.awt.*;
import java.applet.Applet;
/*
<applet code="MyCheckbox2" width=300 height=200> </applet>
*/
public class MyCheckbox2 extends Applet {
public void init() {
Checkbox m1 = new Checkbox("Label1", true);
Checkbox m2 = new Checkbox("Label2", false);
Checkbox m3 = new Checkbox("Label3", true);
add(m1);
add(m2);
add(m3);
}
}
Radio Button
Checkbox getCurrent()
SetSelectedCheckbox(cb)
GetSelectedCheckbox()
import java.awt.*;
import java.applet.Applet;
/*
<applet code="MyCheckboxGroup1" width=300 height=200> </applet>
*/
public class MyCheckboxGroup1 extends Applet {
public void init() {
// create button controller
CheckboxGroup cbg = new CheckboxGroup();
Checkbox cb1 =
new Checkbox("Show lowercase only", cbg, true);
Checkbox cb2 =
new Checkbox("Show uppercase only", cbg, false);
add(cb1);
add(cb2);
}
}
Page - 7
Java Programming
import java.awt.*;
import java.applet.Applet;
/*
<applet code="MyCheckboxGroup2" width=200 height=200> </applet>
*/
public class MyCheckboxGroup2 extends Applet {
CheckboxGroup cbg1,cbg2;
Checkbox cb1,cb2,cb3,cb4,cb5;
public void init() {
cbg1 = new CheckboxGroup();
cbg2 = new CheckboxGroup();
cb1 = new Checkbox("lowercase", cbg1, true);
cb2 = new Checkbox("uppercase", cbg1, false);
cb3 = new Checkbox("red", cbg2, true);
cb4 = new Checkbox("blue", cbg2, false);
cb5 = new Checkbox("greene", cbg2, false);
}
public void start()
{
add(cb1);
add(cb2);
add(cb3);
add(cb4);
add(cb5);
}
}
Choice
Add(str)
CountItems()
GetSelectedIndex()
Remove(str)
GetItem(index)
Insert(str,index)
import java.awt.*;
import java.applet.Applet;
/*<applet code="MyChoice1" width=300
height=200> </applet>*/
public class MyChoice1 extends Applet {
Choice rgb;
String s;
int i;
public void init() {
rgb = new Choice();
rgb.add("Red");
rgb.add("Green");
rgb.add("Blue"); }
AddItem(str)
GetItemCount()
Java Programming
List() List(row)
List
List(row,bool multimode)
GetSelectedItem()
Add(str,index)
Select(index)
Scrollbar()
Add(str)
String[]
getSelectedItems()
Scrollbar
Scrollbar(int style,int initialvalue, int thumbsize,int min, int max)
SetValue(initval,thumb,m
in,max)
GetMinimum()
SetBlockIncrement(int)
GetSelectedIndex()
String[]
getSelectedIndexes()
GetItem(index)
GetValue()
SetValue(int)
GetMaximum()
SetUnitIncrement(int)
TextArea
TextArea()
TextArea(String text) TextArea(int row, int col)
TextArea(s,row,col,int scrollbar)
Appent(s)
GetRows()
GetScrollbarVisibility()
AppendText(s)
SetColumns()
Insert(s,pos)
TextArea(s,row,col)
GetColumns()
SetRows()
ReplaceRange(s,start,end)
SROLLBARS.BOTH/NONE/VERTICAL/HORIZONTAL
import java.awt.*;
import java.applet.Applet;
<applet code="MyTextArea1" width=300 height=200> </applet>
*/
public class MyTextArea1 extends Applet {
TextArea disp;
public void init() {
disp = new TextArea("Code goes here", 10, 30);
add(disp);
}
}
Page - 9
Java Programming
import java.awt.*;
import java.applet.Applet;
/*
<applet code="MyTextArea2" width=300 height=200> </applet>
*/
public class MyTextArea2 extends Applet {
String s =
"This is a very long message It should wrap when there is " +
"no horizontal scrollbar.";
public void init() {
add(new TextArea (s, 4, 15, TextArea.SCROLLBARS_NONE));
add(new TextArea (s, 4, 15, TextArea.SCROLLBARS_BOTH));
add(new TextArea (s, 4, 15,TextArea.SCROLLBARS_HORIZONTAL_ONLY));
add(new TextArea (s, 4, 15, TextArea.SCROLLBARS_VERTICAL_ONLY));
}
}
i import java.awt.*;
import java.applet.Applet;
/*
<applet code="DemoComponent1"
width=450 height=300> </applet>
*/
public class DemoComponent1 extends
Applet
{
String msg;
Button b1;
Label l1, l2;
TextArea ta;
TextField tf1,tf2;
public void init()
{
b1=new Button("OK");
l1=new Label("Name : ");
l2=new Label("Remarks : ");
tf1=new TextField(10);
tf2=new TextField(10);
ta=new TextArea("aaaa");
add(l1);
add(tf1);
add(l2);
add(tf2);
add(ta);
add(b1);
}
}
<html>
<title> My Components Demo </title>
<head> <h1>Here is coponents
Demo</h1> </head>
<body>
<BR><P>
<applet code="DemoComponent1"
width=400 height=250>
</applet>
</body>
</html>
--------------------------------------------------<html>
<title> My Components Demo </title>
<head> <h1>Here is coponents
Demo</h1> </head>
<body>
<BR><P>
<applet code="DemoComponent1"
width=400 height=200>
</applet>
<applet code="HelloWorld" width=400
height=75> </applet>
</body>
</html>
Page - 10
Java Programming
Text Editor
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
/*
<applet code="DemoTA" width=200 height=300> </applet>
*/
public class DemoTA extends Applet
implements ActionListener
{
int i,j;
String s="";
String s1="";
Button b1,b2;
Label msg;
TextArea ta;
public void init()
{
ta=new TextArea("Type here",20,50,0);
b1 = new Button("cut");
b1.addActionListener(this);
b2 = new Button("paste");
b2.addActionListener(this);
add(ta);
add(b1);
add(b2);
}
public void actionPerformed(ActionEvent ae)
{
if (ae.getSource()==b1)
{
s=ta.getSelectedText();
i=ta.getSelectionStart();
j=ta.getSelectionEnd();
ta.replaceRange("",i,j);}
if (ae.getSource()==b2)
{
i=ta.getSelectionStart();
j=ta.getSelectionEnd();
ta.replaceRange(s,i,j); }
repaint();
}
}
Page - 11
Java Programming
Canvas
A Canvas is a graphical component representing a region where you can draw things such as
rectangles, circles, and text strings. The name comes from a painter's canvas. You subclass
Canvas to override its default paint() method to define your own components.
You can subclass Canvas to provide a custom graphic in an applet.
import java.awt.Canvas;
import java.awt.Graphics;
class DrawingRegion extends Canvas {
public DrawingRegion() {
setSize(100, 50);
}
public void paint(Graphics g) {
g.drawRect(0, 0, 99, 49); // draw border
g.drawString("A Canvas", 20,20);
}
}
Then you use it like any other component, adding it to a parent container, for example in an
Applet subclass.
import java.applet.Applet;
public class CanvasPaintTest extends Applet {
public void init() {
DrawingRegion region = new DrawingRegion();
add(region);
}
The Canvas class is frequently extended to create new component types, for example image
buttons.
Page - 12
Java Programming
Page - 13
Java Programming
mport java.awt.*;
import java.applet.Applet;
/*
<applet code="DemoGraphics3" width=450 height=300> </applet>
*/
public class DemoGraphics3 extends Applet
{
public void paint(Graphics g)
{
g.drawOval(10,10,50,50);
g.fillOval(100,10,75,50);
g.drawArc(10,40,70,70,0,75);
g.fillArc(100,40,70,70,0,75);
}
}
import java.awt.*;
import java.applet.Applet;
/*
<applet code="DemoGraphics4" width=450 height=300> </applet>
*/
public class DemoGraphics4 extends Applet
{
public void paint(Graphics g)
{
int xpoints[]={30, 200,30,200,30};
int ypoints[]={30,30,200,200,30};
int num=5;
g.drawPolygon(xpoints, ypoints, num);
}
}
Page - 14
Java Programming
Images
import java.awt.*;
import java.applet.*;
import java.net.*;
/*
<applet code="ImageDisplayer" width=300 height=300> </applet>
*/
/*
Applet needed to load media and text
Applet loaded from HTML file - getDocumentBase()
Applet loaded from class file - getCodeBase()
These method return values as URL objects
*/
public class ImageDisplayer extends Applet {
Image image;
public void init() {
image = getImage(getCodeBase(), "bsnllogo.gif");
}
public void paint(Graphics g) {
URL u=getCodeBase();
String msg="Codebase : "+u.toString();
g.drawString(msg,150,150);
//Draw image at its natural size first.
g.drawImage(image, 0, 0, this); //85x62 image
//Now draw the image scaled.
g.drawImage(image, 90, 0, 300, 62, this);
}
}
Page - 15
Java Programming
g.drawRoundRect(190,10,60,50,15,15);
import java.awt.*;
g.fillRoundRect(70, 90,140,100,30,40);
/*
g.setColor(c3);
g.drawOval(10,10,50,50);
*/
g.fillOval(100,10,75,50);
g.drawArc(10,40,70,70,0,75);
g.fillArc(100,40,70,70,0,75);
{
Color c1=new Color(255, 100, 100);
g.setColor(Color.red);
g.setColor(c1);
int num=5;
g.drawLine(0,0,100,100);
g.drawLine(0,100,100,0);
g.setColor(c2);
g.drawRect(10,10,60,50);
g.fillRect(100,10,60,50);
Page - 16
Java Programming
Page - 17
Java Programming
Page - 18
Java Programming
Example 1
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
/*
<applet code="SimpleButtonEvent1" width=200 height=300> </applet>
*/
public class SimpleButtonEvent1 extends Applet
implements ActionListener {
private Button b;
public void init() {
b = new Button("Press me");
b.addActionListener(this);
add(b);
}
public void actionPerformed(ActionEvent e) {
// If the target of the event was our Button
// In this example, the check is not
// truly necessary as we only listen to
// a single button
if ( e.getSource() == b ) { //getSource() method returns the source of the event.
getGraphics().drawString("OUCH",20,20);
}
}
}
Page - 19
Java Programming
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
/*
<applet code="SimpleButtonEvent" width=200 height=300> </applet>
*/
public class SimpleButtonEvent extends Applet
implements ActionListener
{
Button b1,b2,b3;
String msg="";
public void init()
{
b1 = new Button("Yes");
b2 = new Button("No");
b3 = new Button("May be");
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
add(b1);
add(b2);
add(b3);
}
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 May be";}
repaint();
}
public void paint(Graphics g)
{
g.drawString(msg,6,100);
}
}
Page - 20
Java Programming
Down
Up
Mouse clicked
Entered
Exited
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
/*
<applet code="MouseEvents" width=400 height=300> </applet>
*/
public class MouseEvents extends Applet implements MouseListener,
MouseMotionListener
{
String msg=;
int mouseX=0, mouseY=0; //co-ordinates of mouse
public void init()
{
addMouseListener(this);
addMouseMotionListener(this);
}
public void mouseClicked(MouseEvent me)
{
mouseX=0;
mouseY=10;
msg="Mouse Clicked";
repaint();
}
public void mouseEntered(MouseEvent me)
{
mouseX=0;
mouseY=10;
msg="Mouse entered";
repaint();
}
Page - 21
Java Programming
Page - 22
Java Programming
LayOut Manager
Java has GUI Component placement strategy. Since java uses native windowing system to
provide its windows & button building blocks, It is not possible to specify component
dimensions & positions with absolute precision.
AWT uses automatic layout system based on layout managers with
Flowlayout
GridLayout
BorderLayout
GridbagLayout
CardLayout
FlowLayout
A flow layout arranges components in a left-to-right flow, much like lines of text in a
paragraph. Flow layouts are typically used to arrange buttons in a panel. It will arrange
buttons left to right until no more buttons fit on the same line. Each line is centered.
A flow layout lets each component assume its natural (preferred) size.
GridLayout
The GridLayout class is a layout manager that lays out a container's components in a
rectangular grid.
The container is divided into equal-sized rectangles, and one component is placed in each
rectangle.
Add gridlayout manager (replacing default flowlayout manager) in the init() method before
putting any control to the layout with setLayout() method.
For example, the following is an applet that lays out six buttons into three rows and two
columns:
FlowLayout
import java.awt.*;
import java.applet.Applet;
public class myButtons extends Applet {
Button button1, button2, button3;
public void init() {
button1 = new Button("Ok");
button2 = new Button("Open");
button3 = new Button("Close");
add(button1);
add(button2);
add(button3);
}
}
GridLayout
import java.awt.*;
import java.applet.Applet;
public class ButtonGrid extends Applet {
public void init() {
setLayout(new GridLayout(3,2));
add(new Button("1"));
add(new Button("2"));
add(new Button("3"));
add(new Button("4"));
add(new Button("5"));
add(new Button("6"));
}
}
Page - 23
Java Programming
When both the number of rows and the number of columns have been set to non-zero values,
either by a constructor or by the setRows and setColumns methods, the number of columns
specified is ignored. Instead, the number of columns is determined from the specified number
or rows and the total number of components in the layout. So, for example, if three rows and
two columns have been specified and nine components are added to the layout, then they will
be displayed as three rows of three columns. Specifying the number of columns affects the
layout only when the number of rows is set to zero
import java.awt.*;
import java.applet.Applet;
fill5=new Label();
add(fill5);
text2=new TextField(10);
add(text2);
fill6=new Label();
add(fill6);
spacer1=new Label();
add(spacer1);
spacer2=new Label();
add(spacer2);
spacer3=new Label();
add(spacer3);
fill7=new Label();
add(fill7);
b1=new Button("=");
add(b1);
fill8=new Label();
add(fill8);
spacer4=new Label();
add(spacer4);
spacer5=new Label();
add(spacer5);
spacer6=new Label();
add(spacer6);
fill9=new Label();
add(fill9);
answertext=new TextField(10);
add(answertext);
fill10=new Label();
add(fill10);
/*
<applet code="MyGridLayout1"
width=300 height=200> </applet>
*/
public class MyGridLayout1 extends
Applet {
TextField text1,text2,answertext;
Label pluslabel, fill1, fill2, fill3,
fill4, fill5, fill6, fill7, fill8, fill9, fill10;
Label spacer1, spacer2, spacer3,
spacer4, spacer5, spacer6;
Button b1;
public void init() {
setLayout(new GridLayout(9,3));
fill1=new Label();
add(fill1);
text1=new TextField(10);
add(text1);
fill2=new Label();
add(fill2);
fill3=new Label();
add(fill3);
pluslabel=new
Label("+",Label.CENTER);
add(pluslabel);
fill4=new Label();
add(fill4);
}
}
Page - 24
Java Programming
BorderLayout
The BorderLayout positions and scales components along left, right, top, bottom & center
edges of window. It allows you to surround applet with scroll bars
import java.applet.Applet;
import java.awt.*;
/*
<applet code="MyBorderLayout" width=300 height=200> </applet>
*/
public class MyBorderLayout extends Applet
{
Scrollbar hScroll1, hScroll2, vScroll1, vScroll2;
Button b1;
public void init()
{
setLayout(new BorderLayout());
b1=new Button("Hello");
hScroll1=new Scrollbar(Scrollbar.HORIZONTAL,1,1,1,200);
hScroll2=new Scrollbar(Scrollbar.HORIZONTAL,1,1,1,200);
vScroll1=new Scrollbar(Scrollbar.VERTICAL,1,1,1,200);
vScroll2=new Scrollbar(Scrollbar.VERTICAL,1,1,1,200);
add("North",hScroll1);
add("South",hScroll2);
add("West",vScroll1);
add("East",vScroll2);
add("Center",b1);
}
}
Page - 25
Java Programming
GridBag Layout
It uses helper class GridBagConstraints to specify all layout parameter.
It has advantage of allowing component to use up more than one grid cell.
Componenet size can be specified by
Number of horizontals and or
Number of vertical grid cell
Componenet placement and size is controlled by gridx, gridy, gridwidth and gridheight
variables
Example GridBagLayout
Show 9 buttons in one row
Show 9 buttons in three row
Skip one button with gridx++;
Gbc.fill=GridBagConstraints.HORIZONTAL / VERTICAL / BOTH
Gbc.weightx =5/ weighty=5
Gbc.gridwidth=GridBagConstraints.REMAINDER
Example
import java.awt.*;
import java.applet.*;
/*
<applet code="MyGridBag1" width=300 height=200>
</applet>
*/
public class MyGridBag1 extends Applet
{
public void init()
{
GridBagLayout gb=new GridBagLayout();
GridBagConstraints gbc=new
GridBagConstraints();
Button b1,b2,b3,b4,b5,b6;
setLayout(gb);
gbc.gridwidth=1;
gbc.gridheight=1;
gbc.gridx=0;
gbc.gridy=0;
gbc.fill=GridBagConstraints.HORIZONTAL;
b1=new Button("FIrst");
add(b1,gbc);
b2=new Button("Second");
gbc.gridx=1;
gbc.gridwidth=2;
add(b2,gbc);
Page - 26
Java Programming
b3=new Button("Third");
gbc.gridx=3;
gbc.gridwidth=GridBagConstraints.REMAINDER;
add(b3,gbc);
b4=new Button("Fourth");
gbc.gridy++;
gbc.gridx=0;
add(b4,gbc);
b5=new Button("Fifth");
gbc.gridy++;
gbc.gridx=0;
gbc.gridwidth=1;
add(b5,gbc);
b6=new Button("Sixth");
gbc.gridx=1;
gbc.gridwidth=GridBagConstraints.REMAINDER;
add(b6,gbc);
}
}
import java.awt.*;
import java.applet.*;
/*<applet code = "MyGridbagLayout1" width=500 height=300> </applet>*/
public class MyGridbagLayout1 extends Applet
{
Button b1,b2,b3,b4,b5,b6,b7,b8,b9;
GridBagLayout gb=new
GridBagLayout();
GridBagConstraints gbc=new
GridBagConstraints();
public void init()
{
setLayout(gb);
gbc.weightx=5;
gbc.weighty=5;
gbc.fill=GridBagConstraints.HORIZONTAL;
b1=new Button("First Button");
add(b1,gbc);
b2=new Button("Second");
add(b2,gbc);
b3=new Button("3rd");
add(b3,gbc);
gbc.gridy=2;
b4=new Button("Forth");
add(b4,gbc);
Page - 27
Java Programming
gbc.gridx=2;
b5=new Button("Fifth Button");
add(b5,gbc);
b6=new Button("Sixth");
//add(b6,gbc);
gbc.gridy++;
gbc.gridx=0;
b7=new Button("Seventh");
add(b7,gbc);
gbc.gridx++;
gbc.gridwidth =
GridBagConstraints.REMAINDER;
b8=new Button("Eighth");
add(b8,gbc);
gbc.gridx++;
b9=new Button("Ninth");
add(b9,gbc);
}
}
Page - 28
Java Programming
Java Programming
(String)(e.getItem()));
}
public void actionPerformed(ActionEvent e) {
String arg = e.getActionCommand();
if ("first".equals(arg)) {
((CardLayout)cards.getLayout()).first(cards);
} else if ("next".equals(arg)) {
((CardLayout)cards.getLayout()).next(cards);
} else if ("previous".equals(arg)) {
((CardLayout)cards.getLayout()).previous(cards);
} else if ("last".equals(arg)) {
((CardLayout)cards.getLayout()).last(cards);
} else {
((CardLayout)cards.getLayout()).show(cards,(String)arg);
}
}
public static void main(String args[]) {
Frame f = new Frame("CardTest");
CardTest cardTest = new CardTest();
cardTest.init();
cardTest.start();
f.add("Center", cardTest);
f.setSize(300, 300);
f.show();
}
public String getAppletInfo() {
return "Demonstrates the different types of layout
managers.";
}
}
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
/*<applet code="CardPanel" height=300 width=300></applet>*/
class CardPanel extends Panel {
ActionListener listener;
Panel create(LayoutManager layout) {
Button b = null;
Page - 30
Java Programming
Page - 31
Java Programming
Chapter - 9
AWT Applications
Objectives :
At the end of this chapter
You will be able to write programs for Java Application using Windows,
Frames and Panels
Super classes can be extended and their properties can be inherited. Component is an
abstract subclass of main class Container. Container has add() method. It has subclasses
Window, Panel.
Window : Has subclass a frame which is a window with Title & resizing corners.
In frames the default layout manager is BorderLayout.
You must change it using setLayout()
Initially frame is invisible despite of all components added to it. Use setVisible(true)
Draw a frame and set foreground / background colors and display text.
import java.awt.*;
public class DrawFrame1
{
private Frame f;
private Label l;
public void launchFrame()
{
l=new Label("Good Day");
f=new Frame("Hello Friends");
f.setSize(150,150);
f.setBackground(Color.blue);
f.setForeground(Color.red);
f.add(l);
f.setVisible(true);
}
public static void main(String args[])
{
DrawFrame1 f=new DrawFrame1();
f.launchFrame();
}
}
Page - 32
Java Programming
import java.awt.*;
public class FrameWithPanel
{
private Frame f;
private Panel p;
public FrameWithPanel(String title)
{
f=new Frame(title);
p=new Panel();
}
public void launchFrameWithPanel()
{
f.setSize(200,200);
f.setBackground(Color.blue);
f.setLayout(null);
p.setSize(100,100);
p.setBackground(Color.red);
f.add(p);
f.setVisible(true);
}
public static void main(String args[])
{
FrameWithPanel guiWindow=new FrameWithPanel("Frame with Panel");
guiWindow.launchFrameWithPanel();
}
}
Page - 33
Java Programming
Panels
}
One frame with two panels
import java.awt.*;
public class FrameWithPanel1
{
private Frame f;
private Panel p,p1;
private Label l,l1;
Button b,b1;
public FrameWithPanel1(String title)
{
f=new Frame(title);
p=new Panel();
l=new Label("Hello Friends How r u");
p1=new Panel();
l1=new Label("Message on second panel");
b=new Button("OK");
b1=new Button("Cancel");
}
public void launchFrameWithPanel1()
{
f.setSize(200,200);
//f.setBackground(Color.blue);
f.setLayout(new FlowLayout());
p.setSize(100,100);
p1.setSize(100,100);
p.setBackground(Color.red);
p.setForeground(Color.blue);
p.add(l);
p.add(b);
p1.setBackground(Color.yellow);
p1.setForeground(Color.red);
p1.add(l1);
p1.add(b1);
f.add(p);
f.add(p1);
f.setVisible(true);
}
public static void main(String args[])
{
FrameWithPanel1 guiWindow=new
FrameWithPanel1("Frame with Panel");
guiWindow.launchFrameWithPanel1();
}
}
Page - 34