Loading:


Tekst wpływający raz z jednej, raz z drugiej strony

Skrypt tworzy Aplet Java wyświetlający tekst wpływający raz z jednej raz drugiej strony.

Aby stworzyć Aplet Java tworzymy najpierw kod Java w pliku plik.class a następnie tworzymy odwołanie do niego w HTML poprzez znacznik <aplet></aplet>



Napisz Artyku³

Listing


// HTML

<HTML>
<HEAD>
</HEAD>
<BODY>
<APPLET
        code      = "kodJava.class"
        text1     = "Przykładowy tekst..."
        text2     = "Jeszcze jeden tekst..."
        text3     = "Kolejny przykład tekstu..."
        textsNo   = "3"
        fontsize  = "30"
        speedstep = "1"
        width     = "640"
        height    = "100">
</APPLET>
<BODY>
</HTML>


//KOD kodJava.class

import java.awt.*;
import java.applet.*;
import java.util.*;

public
class FlowString extends Applet implements Runnable
{
  int mX, y, speedStep, currText = 0;
  int appWidth, appHeight;
  int strWidth, strHeight, strMaxDescent;
  int direction = 0;
  String[] textsArr;
  String sText, mText;
  Font fontTimesRoman;
  Image img;
  Graphics gDC, mDC;
  boolean stopped = false;
  public void init()
  {
    String strTextsNo;
    int textsNo;

    if((strTextsNo = getParameter("textsNo")) == null)
      strTextsNo = "2";

    try{
        textsNo = Integer.parseInt(strTextsNo);
    }
    catch(Exception e){
      textsNo = 2;
    }

    textsArr = new String[textsNo];

    String str;

    for(int i = 1; i <= textsNo; i++){
      if((str = getParameter("text" + i)) == null)
        str = "Brak parametru text" + i + "!";
      textsArr[i - 1] = str;
    }

    String strFontSize;
    int fontSize;
    if((strFontSize = getParameter("fontsize")) == null)
      strFontSize = "36";

    try{
        fontSize = Integer.parseInt(strFontSize);
    }
    catch(Exception e){
      fontSize = 36;
    }

    String strSpeedStep;
    if((strSpeedStep = getParameter("speedstep")) == null)
      strSpeedStep = "1";

    try{
        speedStep = Math.abs(Integer.parseInt(strSpeedStep));
    }
    catch(Exception e){
      speedStep = 1;
    }

    mText = textsArr[0];

    appWidth = getWidth();
    appHeight = getHeight();

    fontTimesRoman = new Font ("TimesRoman", Font.BOLD, fontSize);
    img = createImage(appWidth, appHeight);
    mDC = img.getGraphics();
    gDC = getGraphics();

    gDC.setFont(fontTimesRoman);
    resetText();
  }
  public void start()
  {
    Thread thread = new Thread (this);
    thread.start();
  }
  public void stop()
  {
    stopped = true;
  }
  public void resetText()
  {
    FontMetrics fm = gDC.getFontMetrics();
    strHeight = fm.getHeight();
    strWidth = fm.stringWidth(mText);
    strMaxDescent = fm.getMaxDescent();
    if (direction == 0){
      mX = appWidth;
    }
    else if (direction == 1){
      mX = -strWidth;
    }
    y = (int)((appHeight + strHeight) / 2);
  }
  public void run()
  {
    while (!stopped){
      if(direction == 0){
        if (mX < -strWidth){
          if(++currText >= textsArr.length)
            currText = 0;
          mText = textsArr[currText];
          direction = 1;
          resetText();
        }
        mX -= speedStep;
      }
      else if (direction == 1){
        if (mX > appWidth){
          if(++currText >= textsArr.length)
            currText = 0;
          mText = textsArr[currText];
          direction = 0;
          resetText();
        }
        mX += speedStep;
      }

      try{
        Thread.sleep(1);
      }
      catch (InterruptedException e){
      }
      mDC.setColor(Color.white);
      mDC.fillRect(0, 0, appWidth, appHeight);
      mDC.setColor (Color.blue);
      mDC.setFont (fontTimesRoman);
      mDC.drawString (mText, mX, y);
      gDC.drawImage (img, 0, 0, this);
    }
  }
}

 




Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2024 v.1.5 | design: diviXdesign & rainbowcolors