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

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

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
    width=170
    height=50 >
    
    
    
    
    
    


The source. Описание исходных текстов Аплет создает задачу отображения символов текстовой строки, для чего он реализует интерфейс Runnable (как и предыдущий аплет). Эта задача рисует отдельные символы текстовой строки, каждый раз определяя их ширину. Поля класса HorzScroll В поле m_HorzScroll хранится сслыка на задачу рсиования строки. В документе HTML нашему аплету передается несколько параметров, задающих отображаемую строку и определяющих ее внешний вид. В поле m_Str хранится отображаемая строка. Шритф, стилевое оформление и размер смиволов строки хранится, соответственно, в полях m_Fnt, m_style и m_size. Цвет символов строки одинаковый и хранится в поле m_color. Поле m_delay хранит текущее время задержки между отображением отдельных символов строки в миллисекундах. Метод init Метод init получает текущие значения параметров аплета и сохраняет их в соответствующих полях основного класса. Способ получения параметров аналогичен использованному в предыдущем приложении. Метод paint Метод paint просто закрашивает окно аплета желтым цветом и затем обводит его черной рамкой. Метод run Перед запуском бесконечного цикла отображения символов строки метод run получает контекст отображения и устанавливает в нем параметры шрифта в соответствии со значениями, переданными аплету через документ HTML. Прежде всего, метод run получает контекст отображения: Graphics g = getGraphics(); Затем в этом контексте отображения устанавливается шрифт с жирным, наклонным или обычным начертанием: if(m_style.equals("BOLD")) g.setFont(new Font(m_Fnt, Font.BOLD, m_size)); else if(m_style.equals("ITALIC")) g.setFont(new Font(m_Fnt, Font.ITALIC, m_size)); else g.setFont(new Font(m_Fnt, Font.PLAIN, m_size)); Обратите внимание, что название шрифта передается конструктору класса Font через первый параметр, а размер символов - через последний. В зависимости от содержимого поля m_color метод run устанавливает один из трех цветов для отображения символов текстовой строки: if(m_color.equals("red")) g.setColor(Color.red); else if(m_color.equals("green")) g.setColor(Color.green); else g.setColor(Color.black); Помимо этого, до запуска цикла метод run получает размеры окна аплета и метрики шрифта, только что установленного в контексте отображения: Dimension dimAppWndDimension = size(); FontMetrics fm = g.getFontMetrics(); В переменную nCurrentChar, хранящую номер текущего отображаемого символа, записывается нулевое значение. Кроме того, вычисляется позиция для рисования строки по вертикальной оси yPos и устанавливается начальная позиция первого символа строки по горизонтальной оси nCurrentXPos: int yPos = fm.getHeight() + 5; int nCurrentXPos = 10; Далее метод run запускает бесконечный цикл рисования символов. Первое, что метод run делает в этом цикле, это вычисление ширины текущего символа, сохраняя ее в переменной nCurrentCharWidth: nCurrentCharWidth = fm.charWidth(m_Str.charAt(nCurrentChar)); Текущий символ извлекается из строки при помощи метода charAt, определенном в классе String. Ширина извлеченного таким образом символа символа определяется методом charWidth из класса метрик шрифта FontMetrics. Далее нам нужно отобразить текущий символ в заданной позиции, для чего мы воспользуемся ме
 
<<-[Весь Текст]
Страница: из 275
 <<-