Оглавление

Работа с панелями
Создание панелей
Добавление панелей
Добавление компонент
Рисование в панели
Класс на базе 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