Вступление Примеры | Словарь |Вопросы Sun Microsystems |
Примеры программирования на Java
import java.applet.*;
import java.awt.*;
//=================================================
public class audio extends Applet
{
AudioClip clip;
int width; // Данные переменные хранят ширину и
int height;// высоту фонового изображения
Image background; // сюда загружается фоновое изображение ( в данном
// случая картинка клавесина
boolean done_loading_image = false; // Переменная становиться true
// когда изображение загружено
int index; // Текущий индекс звукового файла
boolean test = false; // Данная переменная предназначена для
// предотвращения появления сообщений об ошибках,
// в Java - консоли ( clip.stop нельзя
// использовать раньше clip.loop)
public void init()
{
background = getImage(getCodeBase(), "pianino1.jpg" );
width = size().width;
height = size().height;
Image offScrImage = createImage(size().width, size().height);
//Есть несколько способов вывода изображения на экран:
// аплет может рисовать изображение сразу в окне,
//но такой способ вызовет мерцание.
//Это происходит из-за того, что drawImage не дожидается
//окончания загрузки изображения, а сразу возвращает управление.
//Другой способ (а именно им загружается фоновое изображение) -
// сначало создается изображение вне экрана (createImage), а
// затем выводится на экран функцией drawImage.
Graphics offScrGC = offScrImage.getGraphics();
offScrGC.drawImage(background, 0, 0, width, height, this);
}
//===============================================================
public void Melody_ON( int i) // Исполнение ноты
{
clip = getAudioClip(getCodeBase(), i+".au");
clip.loop();
test = true; // Теперь можно использовать clip.stop
}
//=================================================================
public void Melody_OFF() // Конец звучания ноты
{
if (test)
clip.stop();
}
//==================================================================
public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, int h)
{
// Пока фоновое изображение загружается, параметр
// infoflags не равен ALLBITS. Переменная done_loading_image
// равна false, и в строке статуса Вы видите Loading
if ( infoflags == ALLBITS)
{
done_loading_image = true;
repaint();
return false;
}
else
return true;
}
//================================================================
public void paint(Graphics g)
{
if (!done_loading_image)
showStatus("Loading");
else
{
showStatus("Done");
g.drawImage(background, 0, 0, width, height, this);
}
}
//===================================================================
public boolean mouseDown(Event evt, int x, int y)
// Если указатель мыши помещается в заданную область аплета
// и нажимается любая клавиша мыши,
// то определяется индекс файла, который должен быть загружен
{
if (( y > 6 & y < 61) & (x > 15 & x < 181 ))
{
index = (x-15)/24;
Melody_ON(index);
}
return true;
}
//===================================================================
public boolean mouseUp(Event evt, int x, int y)
// Реакция на события отпускания клавиши --
{
Melody_OFF();
return true;
}
//=========================================================================
public boolean mouseExit(Event evt, int x, int y)
// Если указатель мыши вышел из окна аплета --
// остановка проигрывания звука
{
Melody_OFF();
return true;
}
//========================================================================
}
|
||