Исходный текст аплета Options
Исходный текст аплета Options представлен в листинге 1.
Листинг 1
. Файл Options.java
import java.applet.*;
import java.awt.*;
public class Options extends Applet
{
FirstPanel pPanel1;
CardPanel pCard;
ControlPanel pControl;
public String getAppletInfo()
{
return "Name: Options";
}
public void init()
{
setLayout(new GridLayout(3, 1));
pPanel1 = new FirstPanel();
add(pPanel1);
pCard = new CardPanel(pPanel1);
add(pCard);
pControl = new ControlPanel(pCard);
add(pControl);
pPanel1.setBackground(Color.yellow);
pPanel1.setForeground(Color.black);
repaint();
}
}
class FirstPanel extends Panel
{
String szFontName = "TimesRoman";
public void paint(Graphics g)
{
Dimension dimAppWndDimension = getSize();
g.drawRect(0, 0,
dimAppWndDimension.width - 1,
dimAppWndDimension.height - 1);
g.setFont(new Font(szFontName,
Font.PLAIN, 24));
g.drawString("First panel", 10, 50);
super.paint(g);
}
}
class CardPanel extends Panel
{
Panel pBgColor;
Panel pFgColor;
Panel pFont;
Panel pControlled;
Choice chBgColor;
Choice chFgColor;
Choice chFont;
Label lbBgColor;
Label lbFgColor;
Label lbFont;
public CardPanel(Panel pControlledPanel)
{
pControlled = pControlledPanel;
setLayout(new CardLayout(5, 5));
pBgColor = new Panel();
pFgColor = new Panel();
pFont = new Panel();
add("BgColor", pBgColor);
add("FgColor", pFgColor);
add("Font", pFont);
chBgColor = new Choice();
chFgColor = new Choice();
chFont = new Choice();
chBgColor.add("Yellow");
chBgColor.add("Green");
chBgColor.add("White");
chFgColor.add("Black");
chFgColor.add("Red");
chFgColor.add("Green");
chFont.add("TimesRoman");
chFont.add("Helvetica");
chFont.add("Courier");
lbBgColor = new Label("Background color");
lbFgColor = new Label("Foreground color");
lbFont = new Label("Font");
pBgColor.add(lbBgColor);
pBgColor.add(chBgColor);
pFgColor.add(lbFgColor);
pFgColor.add(chFgColor);
pFont.add(lbFont);
pFont.add(chFont);
}
public void paint(Graphics g)
{
Dimension dimAppWndDimension = getSize();
g.drawRect(0, 0,
dimAppWndDimension.width - 1,
dimAppWndDimension.height - 1);
super.paint(g);
}
public boolean action(Event evt, Object obj)
{
Choice ch;
if(evt.target instanceof Choice)
{
ch = (Choice)evt.target;
if(evt.target.equals(chBgColor))
{
if(ch.getSelectedIndex() == 0)
pControlled.setBackground(
Color.yellow);
else if(ch.getSelectedIndex() == 1)
pControlled.setBackground(
Color.green);
else if(ch.getSelectedIndex() == 2)
pControlled.setBackground(
Color.white);
}
else if(evt.target.equals(chFgColor))
{
if(ch.getSelectedIndex() == 0)
pControlled.setForeground(
Color.black);
else if(ch.getSelectedIndex() == 1)
pControlled.setForeground(
Color.red);
else if(ch.getSelectedIndex() == 2)
pControlled.setForeground(
Color.green);
}
else if(evt.target.equals(chFont))
{
if(ch.getSelectedIndex() == 0)
((FirstPanel)pControlled).szFontName
= "TimesRoman";
else if(ch.getSelectedIndex() == 1)
((FirstPanel)pControlled).szFontName
= "Helvetica";
else if(ch.getSelectedIndex() == 2)
((FirstPanel)pControlled).szFontName
= "Courier";
}
else
{
return false;
}
pControlled.repaint();
return true;
}
return false;
}
}
class ControlPanel extends Panel
{
Button btNext;
Button btPrev;
Button btBgColor;
Button btFgColor;
Button btFont;
Panel pCard;
public ControlPanel(Panel pCardPanel)
{
pCard = pCardPanel;
setLayout(new GridLayout(2,3));
btBgColor = new Button("Background Color");
btFgColor = new Button("Foreground Color");
btFont = new Button("Set Font");
btNext = new Button("Next");
btPrev = new Button("Prev");
add(btBgColor);
add(btFgColor);
add(btFont);
add(btNext);
add(btPrev);
}
public boolean action(Event evt, Object obj)
{
if(evt.target instanceof Button)
{
if(evt.target.equals(btBgColor))
{
((CardLayout)pCard.getLayout()).show(
pCard, "BgColor");
}
else if(evt.target.equals(btFgColor))
{
((CardLayout)pCard.getLayout()).show(
pCard, "FgColor");
}
else if(evt.target.equals(btFont))
{
((CardLayout)pCard.getLayout()).show(
pCard, "Font");
}
else if(evt.target.equals(btNext))
{
((CardLayout)pCard.getLayout()).next(
pCard);
}
else if(evt.target.equals(btPrev))
{
((CardLayout)pCard.getLayout()).
previous(pCard);
}
else
{
return false;
}
return true;
}
return false;
}
}
Исходный текст документа HTML, созданный для аплета Options системой Java WorkShop, представлен в листинге 2.
Листинг 2. Файл Options.tmp.html
<applet name="Options"
code="Options"
codebase=
"file:/E:/Sun/Articles/vol8/src/Options"
width="500"
height="600"
align="Top"
alt="If you had a java-enabled browser,
you would see an applet here.">
<hr>If your browser recognized the applet tag,
you would see an applet here.<hr>
</applet>