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>
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: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno