Оглавление

Работа с панелями
Создание панелей
Добавление панелей
Добавление компонент
Рисование в панели
Класс на базе Panel
Аплет Options
Исходный текст
Описание текста

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


Java | Продукты и решения | Технологии | Сервис и обучение
О компании | Партнеры | Новости | Поиск
Sun Microsystems Inc. Corporate Information Our partners News and Events Search on site Java Computing Products and Solutions Technologies and Researches Education and Service Content



Сайт создан в системе uCoz