Scopul lucrării: familiarizarea studenţilor cu crearea apletelor în Java. Însuşirea modalităţilor de creare a appletelor în Java. Însuşirea metodelor de utilizare a thread-urilor în applete pentru animare.
Insarcinarea: Spot publicitar ce poate fi întrerupt şi repornit, ce caracterizează Catedra Calculatoare.
Listingul programului:
package la6Ap;
import java.awt.*;
import java.applet.*;
import java.net.URL;
@SuppressWarnings("unused")
public class AnimationApplet extends Applet implements Runnable
{ private static final long serialVersionUID = 1L;
private Thread AnimationThread = null;
private String m_AnimationString = "Catedra Calculatoare de la UTM cea mai buna:";
private final String PARAM_AnimationString = "AnimationString";
private Image bufferedDisplay = null;
private boolean animate = true;
public AnimationApplet()
{
// TODO: Add constructor code here
}
public void init()
{ Image img = null;
String param;
param = getParameter(PARAM_AnimationString);
if (param != null)
m_AnimationString = param;
resize(500,250);
bufferedDisplay = createImage(500,250);
//atasarea imafine
img = getImage(getCodeBase(), "bumbum.gif");
img = getImage(getCodeBase(), "smiley07.gif");
}
public void update(Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{ if ( bufferedDisplay != null)
g.drawImage(bufferedDisplay, 0,0, null);
}
public void start()
{ if (AnimationThread == null)
{ AnimationThread = new Thread(this);
AnimationThread.start();
}
}
public void stop()
{ if (AnimationThread != null)
{ extracted();
AnimationThread = null; }
}
@SuppressWarnings("deprecation")
private void extracted() {
AnimationThread.stop();
}
@SuppressWarnings("deprecation")
public void run()
{
int width = size().width;
int height= size().height;
int xOffset = width +15;
int yOffset = height / 2;
Graphics display = bufferedDisplay.getGraphics();
Font textFont = new Font("Tahoma", Font.ITALIC,45);
display.setFont(textFont);
FontMetrics fm = display.getFontMetrics();
int strWidth = fm.stringWidth(m_AnimationString);
while (true)
{
try
{
if (animate == false)
{
Thread.sleep(1000);
continue;
}
// colorom in orange
display.setColor (Color.ORANGE);
display.fillRect (0,0, width, height);
// coloarea textului
display.setColor (Color.blue);
display.drawString (m_AnimationString, xOffset, yOffset);
// Decrementam xOffset p/u efectul scrol
xOffset--;
if (xOffset < -strWidth)
xOffset = width+1;
repaint();
Thread.sleep(10);
}
catch (InterruptedException e)
{
stop();
}
}
}
public boolean mouseDown(Event evt, int x, int y)
{
// oprim animatia
animate = false;
return true;
}
public boolean mouseUp(Event evt, int x, int y)
{
// Reluam animatia
animate = true;
return true;
}
}
Universitatea Tehnica a Moldovei.
Catedra Calculatoare.
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.