Вступление
Примеры | Словарь |Вопросы
Sun Microsystems

Примеры программирования на Java

Бегущая строка
(Stroka.java)

Описание апплета
Пример работы апплета
import java.applet.*;
import  java.awt.*;

//====================================

 public class Stroka extends Applet implements Runnable
 
 // Создается класс, который будет потомком класса Applet. 
 // Класс Stroka будет использовать потоки, поэтому используется 
 // интерфейс Runnable, который говорит компилятору, что класс
 // Stroka содержит функцию run
 	{
 	   int x = 0; // Переменные x и y содержат координаты  местоположения
 	   int y = 0; // начала строки  в каждый момент времени
 	   int count = 0; 
 	   
 	  
 	   int width = 0;
 	   
 	   Thread my_thread = null; // Определение объекта my_thread
 	   			    // типа Thread
 	   Font font;		    // Определение объекта font
 	   			    // типа Font
 	   Color color; 	    // Определение объекта color
 	   			    // типа Color
 	   Color bgColor;	    // Цвет фона
 	   
 	  // Для определения всех доступных шрифтов используется
 	  // класс Tootkit ( Этот класс используется для  получения
 	  // информации о Вашей системе) 
 	   
 	   Toolkit toolkit = Toolkit.getDefaultToolkit();
 	  
 	  //После получения апплетом доступа к методам класса   Tootkit,
 	  // используется метод getFontList().
 	  // В результате в переменной fontlist[], которая объявлена массивом,
 	  // будет храниться список всех доступных шрифтов
 	   String fontlist[] = toolkit.getFontList();
 	    
 	 //============================================
 	 
 	 
 	 public void init()
 	   { 
 	     x = size().width;     // Определение начальных координат 
 	     y = size().height/2;
 	     width = x;
 	     bgColor = new Color(255,255,255);
 	     setBackground(bgColor);
 	   }
 	   
 	//================================================
 	
 	public void start()       
 	
 	 {
 	   my_thread = new  Thread(this); // Создается объект Thread,
 	   my_thread.start();		  // а затем запускается поток
 	   
 	 }
 	 
 	 
   //=================================================
   
   
   public void run()   // Данная функция отвечает за движение сообщения
   
   {
       
       while(true)
         {
            
            repaint();
            x -= 1;   // с каждым шагом координата х уменьшается на 1
            if (x<-150)
             {
             
              x = width;
              count++; // Индекс шрифта в переменной fontlist
               if (count == (fontlist.length))
                count = 0;
              }
            
             try
             
               { 
                  Thread.sleep(20); // Задержка выполнения на 20 мс
               }
               
             catch (InterruptedException e)
                {
                }
                
             }
             
          }
          
      //===============================================
      
      public void paint(Graphics g) // run вызывает функцию repaint, a repaint
      				    // вызывает paint
         {
         font = new Font (fontlist[count],Font.PLAIN,20); //Создание объектов
         color = new Color (0, count*50, count*50); 
      
  	// Установка новых параметров цвета и шрифта
  	   	    
 	  g.setFont(font);
          g.setColor(color);
          
          g.drawString (fontlist[count],x,y); //Вывод названия шрифта в позицию 
          				      // с координатами x y
             }
        
        
         
       }