Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
панели на фоне окна аплета, мы устанавливаем для них 
разные цвета фона и изображения. Для первой панели устанавливается желтый цвет 
фона и черный цвет изображения:
pPanel1.setBackground(Color.yellow);
pPanel1.setForeground(Color.black);
   Для второй панели мы устанавливаем белый цвет фона и красный цвет 
изображения:
pPanel2.setBackground(Color.white);
pPanel2.setForeground(Color.red);
   В результате цвета рамки окна и текста первой и второй панели будут разными.
   На последнем этапе инициализации мы инициируем вызов метода paint класса 
Panel2, вызывая для этого метод repaint:
repaint();
   Это нужно для того, чтобы сразу после отображения окна аплета выполнить 
рисование текстовых строк внутри окон панелей.
   Метод paint класса Panel2
   Метод paint класса Panel2 рисует две строки в окнах панелей, расположенных в 
окне аплета. Для этого он получает контекст отображения каждой панели и 
вызывает для этого контекста метод drawGraphics:
Graphics gPanel1;
Graphics gPanel2;
gPanel1 = pPanel1.getGraphics();
gPanel1.drawString("Нарисовано в первой панели",  10, 80);
gPanel2 = pPanel2.getGraphics();
gPanel2.drawString("Нарисовано во второй панели", 10, 80);
   Хотя при рисовании строк мы указали одинаковые координаты начала строки (10, 
80), наложения строк не произойдет. Это потому, что эти строки рисуются в 
разных графических контекстах, которые относятся к окнам разных панелей.
   Цвет рисуемого текста и фона, на котором он будет нарисован, также получится 
разный, так как для наших панелей установлен разный цвет изображения и фона.
   Класс FirstPanel
   Класс FirstPanel создан на базе класса Panel:
class FirstPanel extends Panel
{
  public void paint(Graphics g)
  {
    . . .
    super.paint(g);
  }
}
   В нашем приложении мы создаем верхнюю панель как объект этого класса. 
Единственный метод, переопределенный в классе FirstPanel - это метод paint.
   Метод paint класса FirstPanel
   Задачей метода paint класса FirstPanel является рисование рамки вокруг 
первой панели и текстовой строки в окне этой панели. В качестве параметра метод 
paint класса FirstPanel получает ссылку на контекст отображения для окна первой 
панели. Мы можем использовать этот контекст для того чтобы нарисовать 
что-нибудь внутри первой панели.
   Процедура рисования не имеет никаких особенностей:
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 
   Класс SecondPanel создан также на базе класса Panel:
class SecondPanel extends Panel
{
  public void paint(Graphics g)
  {
    . . .
    super.paint(g);
  }
}
   С использованием этого класса создается нижняя панель. В классе SecondPanel, 
как и в классе FirstPanel, переопределен метод paint.
   Метод paint класса SecondPanel
   Метода paint класса SecondPanel выполняет те же самые операции, что и метод 
paint класса FirstPanel, однако ему передается контекст отображения второй 
панели. Поэтому он нарисует рамку и текстовую строку во второй панели, а не в 
первой или где-нибудь еще.
8 ОКНА И ДИАЛОГОВЫЕ ПАНЕЛИ
   До сих пор мы рисовали только в окне аплета или в окнах панелей, 
расположенных внутри окна аплета. Однако есть и другая возможность - приложения 
Java, полноценные и аплеты, могут создавать обычные перекрывающиеся окна, такие,
 например,
 
<<-[Весь Текст]
Страница: из 275
 <<-