// =========================================================
// Работа с панелями класса Panel
// Наследование от класса Panel
//
// (C) Фролов А.В, 1997
//
// E-mail: frolov@glas.apc.org
// WWW:    http://www.glasnet.ru/~frolov
//            или
//         http://www.dials.ccas.ru/frolov
// =========================================================
import java.applet.*;
import java.awt.*;

// =========================================================
// Класс Panel2
// Это наш аплет
// =========================================================
public class Panel2 extends Applet
{
  // Панель для размещения блокнота
  FirstPanel pPanel1;

  // Панель для размещения кнопок управления блокнотом
  SecondPanel pPanel2;
  
  // -------------------------------------------------------
  // getAppletInfo
  // Метод, возвращающей строку информации об аплете
  // -------------------------------------------------------
  public String getAppletInfo()
  {
   	return "Name: Panel2\r\n" +
      "Author: Alexandr Frolov\r\n" +
	    "E-mail: frolov@glas.apc.org" +
      "WWW:    http://www.glasnet.ru/~frolov" +
      "Created with Microsoft Visual J++ Version 1.0";
	}

	// -------------------------------------------------------
  // init
  // Метод, получающий управление при инициализации аплета
  // -------------------------------------------------------
	public void init()
	{
    // Создаем в окне аплета две панели, разделяющие
    // окно по горизонтали
    setLayout(new GridLayout(2, 1));
       
    // Создаем первую панель 
    pPanel1 = new FirstPanel();

    // Добавляем первую панель в окно аплета
    add(pPanel1);

    // Создаем вторую панель 
    pPanel2 = new SecondPanel();

    // Добавляем вторую панель 
    add(pPanel2);

    // Устанавливаем желтый цвет фона для первой панели
    pPanel1.setBackground(Color.yellow);

    // Устанавливаем черный цвет изображения 
    // для первой панели
    pPanel1.setForeground(Color.black);

    // Устанавливаем белый цвет фона для второй панели
	  pPanel2.setBackground(Color.white);

    // Устанавливаем красный цвет изображения 
    // для второй панели
    pPanel2.setForeground(Color.red);

    // Инициируем вызов метода paint
    repaint();
	}

  // -------------------------------------------------------
  // paint
  // Метод paint, выполняющий рисование в окне аплета
  // -------------------------------------------------------
	public void paint(Graphics g)
	{
    Graphics gPanel1;
    Graphics gPanel2;
    
    // Получаем контекст отображения для первой панели
    gPanel1 = pPanel1.getGraphics();

    // Рисуем строку в окне первой панели
    gPanel1.drawString("Нарисовано в первой панели", 10, 80);

    // Получаем контекст отображения для второй панели
    gPanel2 = pPanel2.getGraphics();

    // Рисуем строку в окне второй панели
    gPanel2.drawString("Нарисовано во второй панели", 10, 80);
  }
}

// =========================================================
// Класс FirstPanel
// Первая панель
// =========================================================
class FirstPanel extends Panel
{
  // -------------------------------------------------------
  // paint
  // Метод paint, выполняющий рисование в окне аплета
  // -------------------------------------------------------
	public void paint(Graphics g)
	{
    // Определяем текущие размеры 
    Dimension dimAppWndDimension = size();
    
    // Рисуем рамку вокруг окна аплета
    g.drawRect(0, 0, 
      dimAppWndDimension.width  - 1, 
      dimAppWndDimension.height - 1);

    // Устанавливаем шрифт
    g.setFont(new Font("TimesRoman", Font.PLAIN, 12));

    // Рисуем строку
    g.drawString("Первая панель", 10, 50);

    // Вызываем метод paint родительского класса
    super.paint(g);
	}
}

// =========================================================
// Класс SecondPanel
// Вторая панель
// =========================================================
class SecondPanel extends Panel
{
  // -------------------------------------------------------
  // paint
  // Метод paint, выполняющий рисование в окне аплета
  // -------------------------------------------------------
	public void paint(Graphics g)
	{
    // Определяем текущие размеры 
    Dimension dimAppWndDimension = size();
    
    // Рисуем рамку вокруг окна аплета
    g.drawRect(0, 0, 
      dimAppWndDimension.width  - 1, 
      dimAppWndDimension.height - 1);

    // Устанавливаем шрифт
    g.setFont(new Font("Helvetica", Font.PLAIN, 12));

    // Рисуем строку
    g.drawString("Вторая панель", 10, 50);

    // Вызываем метод paint родительского класса
    super.paint(g);
	}
}