Программирование на Java

       

Исходный текст аплета 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; } }


Содержание раздела