Исходные тексты аплета RectanglesИсходные тексты аплета Rectangles приведены в листинге 1. Листинг 1. Файл Rectangles,java import java.applet.*; import java.awt.*; public class Rectangles extends Applet
{
DrawRectangles m_DrawRectThread = null;
DrawEllipse m_DrawEllipseThread = null;
NotifyTask m_NotifyTaskThread = null
public String getAppletInfo()
{
return "Name: Rectangles";
}
public void paint(Graphics g)
{
Dimension dimAppWndDimension = getSize();
g.setColor(Color.yellow);
g.fillRect(0, 0,
dimAppWndDimension.width - 1,
dimAppWndDimension.height - 1);
g.setColor(Color.black);
g.drawRect(0, 0,
dimAppWndDimension.width - 1,
dimAppWndDimension.height - 1);
}
public void start()
{
if (m_DrawRectThread == null)
{
m_DrawRectThread =
new DrawRectangles(this);
m_DrawRectThread.start();
}
if (m_DrawEllipseThread == null)
{
m_DrawEllipseThread =
new DrawEllipse(this);
m_DrawEllipseThread.start();
}
if (m_NotifyTaskThread == null)
{
m_NotifyTaskThread =
new NotifyTask(m_DrawEllipseThread);
m_NotifyTaskThread.start();
}
}
public void stop()
{
if (m_DrawRectThread != null)
{
m_DrawRectThread.stop();
m_DrawRectThread = null;
}
if (m_DrawEllipseThread == null)
{
m_DrawEllipseThread.stop();
m_DrawEllipseThread = null;
}
if (m_NotifyTaskThread != null)
{
m_NotifyTaskThread.stop();
m_NotifyTaskThread = null;
}
}
}
class DrawRectangles extends Thread
{
Graphics g;
Dimension dimAppWndDimension;
public DrawRectangles(Applet Appl)
{
g = Appl.getGraphics();
dimAppWndDimension = Appl.getSize();
}
public void run()
{
while (true)
{
int x, y, width, height;
int rColor, gColor, bColor;
x = (int)(dimAppWndDimension.width
* Math.random());
y = (int)(dimAppWndDimension.height
* Math.random());
width = (int)(dimAppWndDimension.width
* Math.random()) / 2;
height = (int)(dimAppWndDimension.height
* Math.random()) / 2;
rColor = (int)(255 * Math.random());
|