АмадеуслгЯва: Учебник

Введение
Общая характеристика языка АлгЯва
Рабочая среда  
Maкросы

Структура программы
Редактирование текста программы
Программы экранной графики
Программы, применяющие консольный диалог
Программы обработки текстовых файлов
Средства отладки
Группы и комментарии

Дополнительные вопросы
Oписаниe импорта и статических переменныx
Отмеченные структурные оператоpы
Cвойства системы
Миграция между операционными системами
Раздел действий проекта

Kартинки



Java API (Application Programming Interface)
Класс Math: аннотации методов (на английском языке)
Класс String: аннотации методов (на английском языке)
Класс Integer: аннотации методов (на английском языке)
Класс Double: аннотации методов (на английском языке)
Класс Graphics: аннотации методов (на английском языке)







 


Введение

Система Aмадеус_АлгЯвa позволяет очень быстро разрабатывать и опробовать элементарные Ява-подобные программы и, тем самым, легко усваивать oсновные понятия и приёмы программирования.  Языком программирования является язык  AлгЯва, в котором доступны все примитивы Ява и многие методы из Ява классов (в том числе все средства из пакета  java.lang). Однако, исключена возможность явным образом развивать многоклассовые программные системы.
Пользователю предлагается ряд упрощений, например, предопределённая рамка для работы с экранной графикой, команда чтения с консоли readln(), как aналог-антипод команды вывода на консоль [System.out.]println(...), и др. Для облегчения отладки предоставляется возможность включать в текст программы приостановки для инспекции (контрольной печати)  значений "заказанных" выражений.
В стандартный комплект системы Aмадеус_АлгЯвa входит ряд демопрограмм, принадлежащих проекту с именем AlgJavaDemo
.


Общая характеристика языка AлгЯвa

Одна элементарная команда -- это один примитив в АлгЯва (и заканчивается точкой с запятой).
Все примитивы записываются на языке Ява.
Ява структуры (описания методов и операторы управления) создаются сразу целиком (в виде схемы). Создатель программы не расставляет фигурные скобки (по одной).
Как исключение допускаются следующие упрощения:
вместо                          
System.out.println(...  и  System.out.print(...
    можно писать            
println(...              и  print(...
вместо заголовка цикла            for(int i = a; i <= b; i++)
    можно писать                        
i = a .. b  (не менее 2 последовательных точек)
заголовок
бесконечного цикла   for(;;)     можно не писать.
На самом деле, основная часть программы на АлгЯва представляет собой один Ява класс с именем Main.class. Но в программе для пользователя всё связанное с понятием класса спрятано.  Также спрятан главный метод (public static void main (String[] args)... ). Содержанием главного метода являются строки от начала программы (не считая oписаний импорта и статических переменых) до первого описания метода или конца программы.
Все описания методов представляют статические методы и располагаются в конце программы. В заголовке метода не указываются модификаторы (
public static ...), автоматически добавляется модификатор static.
Для поддержки программирования экранной графики обеспечивается существование одной графической рамки. Последняя имеет указатель с именем
raam. Создание рамки происходит скрыто от пользователя.
Для поддержки программирования консольного диалога обеспечивается возможность (непосредственно отсутствующая в Яве) использовать метод (readln) для ввода с клавиатуры.
Упрощено описание чтения и записи в текстовые файлы.
Для облегчения отладки обеспечивается возможность добавлять в программу специальные примитивы приостановки.
 

Рабочая среда

Рабочая среда создана на базе системы Амадеус.  В этой системе, вместо обычных простых текстов, обрабатываются т.н. схемные тексты, составленные из схем. Схема состоит из одной или нескольких ветвей. Каждая ветвь содержит в качестве своих членов примитивы (примитивные члены) и (под)схемы. Примитив записывается в виде простого текста (одной или несколькими строками). И у схемы, и у ветви может быть заголовок.
Структура схемы, имеющей две ветви:
 
     - Начало схемы
        [ЗАГОЛОВОК СХЕМЫ -- примитив]
       - Bетвь (1)
          [ЗАГОЛОВОК ВЕТВИ -- примитив]
                ЧЛЕН -- примитив или подсхема
                ЧЛЕН -- примитив или подсхема
                    ...
        - Bетвь (2)
           [ЗАГОЛОВОК ВЕТВИ -- примитив]
                ЧЛЕН -- примитив или подсхема
                ЧЛЕН -- примитив или подсхема
                    ...
     - Конец схемы
 
Для схемы, ветви и текста примитива можно добавить комментарий -- (зелёный) простой текст в одну строчку. Комментарий к схеме записывают у начала схемы (автоматически дублируется у конца схемы). Комментарий к ветви записывают у начала ветви. Комментарий к тексту примитива располагается после последней строки текста. В случае пустого текста на экране высвечивается лишь специальный символ » , обозначающий место начала (будущего) текста.
Обычно программист работает с двумя окнами. Одно из них -- это окно проекта, где отображается описание проекта, а другое --  окно (текущей) программы на АлгЯве. При запуске последней появляется ёще и окно консоли (для вывода результатов), а в случае программы с экранной графикой -- четвёртое, графическое окно.
В первой ветви проекта описываются пути к нужным каталогам (в секции Paths) и действия, выполняемые в случае открытия или сохранения текущей программы (в секциях  Open-script и Save-script соответственно).
K системе Aмадеус_АлгЯвa приложены два проекта в файлах AlgJavaDemo.html и AlgJavaWorks.html в каталоге ./Portfolio. Первые ветви этих проектов отличаются друг от друга лишь определениями каталога (Kaust) рассматриваемых программ,  соответственно:
Kaust: ./demo
Kaust: ./workspace
Если пользователь ограничивается только этими проектами,  например,  изучает демопрограммы в каталоге ./demo и создаёт свои новые программы в каталог ./workspace, тогда нет необходимости изменять первые ветви проектов. Их можно вообще держать в свёрнутом (иконизированном) виде.
Во второй ветви проекта находится список АлгЯва программ, принадлежащих этому проекту. Этот список модифицируется пользователем в соответствии с прибавлением или удалением программ. В случае, когда программа стала излишней, её имя стирается из списка и удаляется (посредством операционной системы) её файл из каталога ./workspace.
Для открытия программы
в новом окне: тройное нажатие левой кнопкой мышки на имени программы в окне проекта;
в существующем окне: в этом окне Файл>Открыть  загружает   ту программу, имя которой предварительно выбрано в окне проекта.
Имя открытой программы раскрашивается серым цветом.
Если открываемая программа отсутствует в каталоге программ, то загружается новая пустая программа.
Для открытия новой программы надо:
Добавить имя новой программы в список программ в окне проекта  (и, желательно, сразу  сохранить проект: Файл>Экспортировать).
Открыть программу (как описано выше).

NB! Имя программы пишется без пробелов и дополняется типом (.algjava).


Обработка программы инициируется из меню: Файл>Сохранить (или нажатием Ctrl+S) и заключается в исполнении действий, описанных в секции Save-script проекта. В стандартных проектах AlgJavaDemo и AlgJavaWorks предусматривается сохранение программы, преобразование в Яву программу, компиляция последней и запуск по следующей схеме.
Пусть открыта текущая программа с именем Privet.algjava.
Тогда при выборе Файл>Сохранить(или Ctrl+S)
текущая программа записывается в файл Privet.algjava
составляется соответствующая Ява программа, которая записывается в файл Privet.java
компилируется: javac Privet.java (в случае удачи результат записывается в файл Main.class)
сообщения об ошибках выводятся на экран, и работа заканчивается; или же (если ошибок не было) исполняется java Main.
Диагноз ошибок на английском языке, выявленных при компиляции, показывается в отдельном окне. Первая ошибка, обнаруженная компилятором, локализируется на уровне АлгЯва и указывается в тексте программы красным квадратиком перед примитивом.
Если в программе предусматривается обработка аргументов с командной строки, то необходимо предварительно написать комплект аргументов в конец последней строки секции Save-script проекта.

Для того, чтобы увидеть Ява-текст,  соответствующий данной АлгЯва программe, необходимо выбрать всю программу, а затем применить Преобразования>Текстуализиовать.   Транслировать можно и только часть АлгЯва программы: нужную часть надо перед текстуализациeй заключить в отдельную группу при помощи Правка>Заключать.


Сохранение программы под другим именем происходит при выборе Файл>Экспортировать в окне программы.
NB! По умолчанию предлагаемое расширение имени новой программы html, a не algjava.
NB! Текущая программа остаётся прежней: не меняется ни её имя, ни связанный с ней файл.
Для закрытия программы закрывают (×) окно программы.

 


Макросы

Вместе с системой Aмадеус_АлгЯвa поставляются не менее трёх комплектов макросов, которые сохраняются в каталоге ./macros (в виде файлов типа html). При запуске (старте)  системы активизируются те комплекты макросов,  имена которых указаны в файле свойств системы Amadeus.properties.
Обычно активируются макросы из комплектов AltGrMacro.html,  AlgJavaMacro.html и Kirillitsa.html.  Активированные макросы видны в начальном окне (в окне, которое появляется первым при старте системы) в секции с именем Macros activated.
Примечание. Если в файле свойств системы Amadeus.properties определено
   locale = RUS
или
   locale = ENG
то вместo AlgJavaMacro активизируется AlgJavaMacroRUS или AlgJavaMacroENG соответственно.
Каждый комплект макросов -- это многоветвистая схема, где каждая ветвь представляет собой один макрос. Именем макроса служит комментарий ветви (зелёный, до первого пробела или конца комментария), а содержанием макроса -- содержание ветви.
Во время редактирования, содержание макроса можно добавить к тексту программы, держа нажатой клавишу Alt и одновременно вводя с клавиатуры имя макроса.

Например, пара квадратных скобок добавляется при помощи
 Alt+88, текст  println("_") -- при помощи Alt+pr, шаблон программы экранной графики  -- при помощи Alt+gr и т.д.


Для определения новoгo комплектa макросов:
В файле cвойств системы дополнить cвойствo myMacros именем файлa MyAlgJavaMacro.

При следующем запуске (старте) активизируется тaкже этот новый файл макросов.
Не рекомендуется включить в файл MyAlgJavaMacro.html макросов с именем из одной буквы.
Временно, во время текущего сеанса, например для пробы, можно модифицировать и находящие в начальном окне макросы. Содержание окна не надо сохранять,  изменённые  или добавленные таким образом макросы могут быть использованы немедленно.




Структура программы

Программа на языке АлгЯва состоит из примитивов (примитивных членов) и схем. В виде примитивов записываются следующие простые операторы языка Ява.

 Название простого оператора

   Название на англ. языке

    Типичный вид  

 ([]- необязательная часть)

описание переменной

variable declaration

тип имяПеременой [= начальное значение];

вызов метода

method call statement

имяМетода(аргум1, аргум2, ...);

оператор присваивания

assignment statement

имяПеременой [знак операции]= выражение;

иной оператор выражения

expression statement

имяПеременой++;    или      имяПеременой--;
++
имяПеременой;    или    --имяПеременой;

оператор прерывания

break statement

break;        в операторах цикла и выбора

оператор продолжения

continue statement

continue;    в операторе цикла

оператор возврата

return statement

return;                в описании метода

оператор установки исключения

throw statement

throw new ...Exception(...);

пустой оператор

empty statement

;



Место для примитива в тексте программы создаётся нажатием клавиши Enter. Затем с клавиатуры вводятся символы текста примитива (оператора). Последний символ простого оператора -- всегда точка с запятой.

Обычно простой оператор занимает одну строку. Но допускается и перевод строки (нажатием клавиши F6). Перевод строки аннулируется клавишей Backspace
Ни один простой оператор не может быть поделён на несколько примитивов.


В виде схем записываются структуры Ява: структурные операторы и методы (точнее, описания методов):

   Название структуры

  Название на англ. языке

Пустая схема  

создаётся клавишей

Пустая ветвь

добавляется клавишей

условный оператор

if statement

F1

F5

оператор цикла

for statement
while statement

F2

 

описание метода (метод)

method declaration

F3

 

оператор выбора

switch statement

F4

F5

оператор испытания

try-catch statement

Shift + F4

F5


 Кроме того, схемы используются для образования различных дополнительных групп в АлгЯва программах.
 
В общем, программа на языке АлгЯва распределяется на две части: 
·         Первая часть: основные действия
·         Вторая часть: вспомогательные действия, описанные в виде методов (предписаний для решения подзадач).
Вторая часть может отсутствовать, как, например, в программе Privet.algjava (в проекте AlgJavaDemo).
Первая часть программы на языке АлгЯва содержит простые и структурные операторы (за исключением описаний методов).
Описания методов составляют вторую часть. Описания методов не могут быть вложены друг в друга. В описании метода приводятся простые и структурные операторы (за исключением описаний методов), определяющие ход решения подзадачи; см., например, демопрограмму
Metody.algjava


В случае сложных программ привлекаются дополнения программы, имена которых перечисляются в комментарии к ветви программы (зелёным). Подчёркивание обозначает пустой перечень.



Редактирование текста программы

Редактирование происходит только в режиме вставки. Режим перезаписи (замены) отсутствует.
Многие приёмы редактирования привычные. Например:
Ctrl+c - копирование выбранного фрагмента в буфер обмена Aмадеус_АлгЯвa;
Ctrl+v - вставка из буфера обмена Aмадеус_АлгЯвa;
Ctrl+x - удаление (вырезание) выбранного фрагмента (вместе с копированием в буфер обмена Aмадеус_АлгЯвa);
Ctrl+z - отмена (аннулирование);
Ctrl+y - возврат (аннулирование аннулирования).

Назначения клавиш Enter и F1-F6 приведены в предыдущем пункте, а назначение клавиши F7 в секции средства отладки.

Для тoго, чтобы добавить/встав
ить новый примитив, структурный оператор или приостановку  п о с л е   существующего структурного оператора, курсор необходимо предварительно перенести в начало (линии схемы) этого структурного оператора.


Текст, находящийся в общем буфере обмена (system clipboard ), можно вставить в программу АлгЯвы, выбрав в меню Правка>Принести. Одновременно копируется данный текст и в буфер обмена Aмадеус_АлгЯвa.

Один щелчок левой кнопкой мышки выбирает ближайшyю целую минимальную конструкцию. Для выбора целой схемы (желательно) один щелчок левой кнопкой мышки в начале схемы, в верхнем левом углу или перед заголовком. Целую схему можно также выбрать двойным щелчком левой кнопкой мышки по линии схемы. Для выбора ветви - щелчок левой кнопкой мышки по линии схемы (на месте ветви) или перед заголовком ветви.

Обычно двойной щелчок левой кнопкой мышки даёт увеличенный "на уровень" выбор.

Один щелчок правой кнопкой мышки сворачивает/разворачивает выбранную схему.
Двойной щелчок правой кнопкой мышки сворачивает/разворачивает все схемы на выбранном уровне.

При помощи перемещения мышки можно выбрать только конструкции, находящиеся на экране. Для выбора большего фрагмента нужно сначала
, хотя бы временно, конструкции свернуть.



Программы экранной графики

Если в начале АлгЯва программы (в комментарии ветви, зелёной) написано имя добавки
raam, тогда в этой программе можно использовать графическую рамку, которая создаётся скрыто от пользователя. Команды для установки атрибутов рамки, такие как
   raam.setSize(..., ...);
   raam.setLocation(..., ...);
   raam.setTitle("...");
   raam.setVisible(true);

записываются в первой части программы.  Создание же рисунка в рамке описывается в отдельном методе с сигнатурой

   joonistada(Tahvel t, Graphics g).
В методе joonistada можно использовать команды экранной графики, такие как
   t.setBackground(...);
   t.getSize();

       g.setColor(...);
      
g.drawOval(...); и т.п.,
которые работают с доской t в рамке или с её графическим контекстом g.
Разумеется, в методе joonistada можно вызывать другие нужные методы.

Демопрограммы, относящиеся к экранной графике:
   Grafika00.algjava
   Grafika.algjava
   GrafikaTsvet.algjava
   UzorRek.algjava

В текстах, рисуемых в графическую рамку командой g.drawString (а в случае операционной системы Windows также командой raam.setTitle), можно использовать русские буквы.
 
Примечание. Pекомендуется избегать совместного использования экранной графики и консольного диaлога.

 



Программы, применяющие консольный диалог

Если в начале АлгЯва программы (в комментарии ветви, зелёной) написано имя добавки
readln(), тогда в этой программе можно использовать метод readln. Выполнение последнего заключается в том, что ждётся пока с консоли введётся строка символов (до нажатия клавиши Enter), а затем возвращается введённая с консоли строка.
Демопрограмма:
   Dialog.algjava



Программы обработки текстовых файлов

Если в начале АлгЯва программы (в комментарии ветви, зелёной) написано имя добавки
I/O, тогда в этой программе можно использовать методы readerFrom и writerTo. См. также демопрограмму VvodVyvod.algjava.
Текстовый файл состоит из строк с символами.
Читатель из текстового файла (например, с именем s) открывают командой
   BufferedReader имяЧитателя = readerFrom(s);
Соответствующий шаблон можно добавить в программу при помощи макроса Alt+from.
Если читатель открыт, тогда очередную строку (типа String)  из файла возвращает команда
    
имяЧитателя.readLine();
если строк больше нет, то возвращается
null.
Читатель закрывают командой
  имяЧитателя.close();

Писатель в текстовый файл (например, с именем v) открывают командой
   PrintWriter имяПисателя = writerTo(v);
Соответствующий шаблон можно добавить в программу при помощи макроса Alt+to.
Если писатель открыт, тогда очередная строкa r (типа String)  добавляется в файл командой
  имяПисателя.println(r);
Писатель закрывают командой
  имяПисателя.close();

Все указанные выше команды (открытия, чтения, вывода, закрытия) надо поставить в оператор испытания. Шаблон последнего можно добавить в программу при помощи макроса Alt+io.



Средства отладки

Если в начале АлгЯва программы (в комментарии ветви, зелёной) написано имя добавки
> , тогда в этой программе можно использовать приостановки.
Место приостановки (break point) можно добавить в программу из меню Добавить>Приостановка (или клавишей F7). Система отмечает примитив приостановки меткой  > и подкрашивает весь примитив специальным цветом. В начале примитива  можно указать имя места приостановки, а в конце написать команду инспекции.
Если выполнение программы дойдёт до приостановки, то на консоль (в одну строку) выводится:
·         имя текущего метода (main  - в случае главного метода, т.е. первой части АлгЯва программы)
·         >
·         имя места приостановки (если имеется)
·         информация об исполнении команды инспекции (если имеется)
Выполнение программы не продолжается, пока с клавиатуры не введётся Enter.

Примечание. В программе экранной графики приостановки не происходит.


Синтаксис  примитива  приостановки:
>  [имя места приостановки]  [команда инспекции]
Имя места приостановки не может содержать пробелы и кавычки.

В АлгЯве имеются две команды инспекции. Команда inspect позволяет изучать текущие значения нескольких переменных и выражений, а команда inspectArray --  значения всех элементов данного массива.

Синтаксис команды
inspect:
   inspect (двоеочие аргумент)+
где аргументом может быть:

·        (a)  простая переменная
·         (б)  элемент массива  (в виде имя[индексное выражение] )
·         (в) (выражение
 
Выражение не должно содержать кавычек. Скобки могут быть опущены, если выражение не содержит квадратных скобок.
При выполнении команды inspect для каждого аргумента на консоль выводится двоеточие и, соответственно,

·            (a)  имя простой переменной, знак равенства и значение простой переменной
·            (бво-первых, индексное выражение элемента массива, знак равенства и значение индексного выражения, и, во-вторых, элемент массива, знак равенства  и значение элемента массива; если индексное выражение задано в виде целочисленного литерала, то значение индексного выражения отдельно не выводится

·            (в) выражение, знак равенства и значение выражения.

Примеры

      Приостановка (в методе mtd)

      Пример информации, выводимой на консоль

> A inspect :k  :y  :i

mtd>A: k = -234 : y = 13.075 : i = 3

> B inspect :a[0]  :a[i-1]

mtd>B:  a[0] = 20 : i-1 = 2 a[i-1] = 40

> S inspect :Math.PI * y * y

mtd>S: Math.PI * y * y = 537.0729355898515

> nizhe_100? inspect :(a[0]+a[i-1]/8)

mtd>nizhe_100?: (a[0] + a[i-1]/8) = 25

> inspect :i  :y

mtd>: i = 3 : y = 13.075

> nachalo_cikla_2

mtd>nachalo_cikla_2:



Синтаксис команды inspectArray:
   inspectArray двоеточие имяМассива

Единственным аргументом является имя (указатель) одномерного массива. При выполнении выводится двоеточие, имя (указатель) массива, пара квадратных скобок и значения всех элементов массива.


Примеры

     Приостановка (в методе mtd)

      Пример информации, выводимой на консоль

> do_cikla inspectArray :a

mtd>do_cikla:a[]: 30  320  -40  50

> posle_cikla inspectArray :a

mtd>posle_cikla:a[]: -40  30  50  320

> i-stroka inspectArray :tabel[i]

mtd>i-stroka:tabel[i][]: 0  -310  0  725  -1


Если в начале программы добавка >  не  указана, тогда все приостановки в программе просто игнорируются.
Все приостановки в АлгЯва программе (точнее: в выделённой части программы) удаляются при помощи команды меню Преобразования>Редуцировать.



Группы и комментарии

В АлгЯва программе можно произвольным образом создавать группы из последовательных членов (и групп). Запрещено лишь образование такой "смешанной" группы, которая охватывает (последний) член первой части и описание (первого) метода во второй части.
Для образования группы нужно выбрать нужный фрагмент на экране (при помощи мышки), после этого команда  Правка>Заключать  (или Ctrl+E)  образует из выбранного фрагмента простую схему без заголовка. Для открытия простой схемы, отображающей группу: выбрать эту схему (щелчок левой кнопкой мышки по линии схемы) и применить Правка>Изменить (или Ctrl+T). Нельзя открыть схему с комментарием.
То, как программа сгруппирована, никак не влияет на выполнение программы. Группе можно дать имя (или комментарий), написав в начало схемы (зелёным) любой (но не начинающийся двумя наклонными чертами) текст. Группы с именем удобно сворачивать, так как имя остаётся видным рядом с иконой.

Для того чтобы закомментировать целую группу нужно дать ей имя, начинающееся двумя наклонными чертами. Так отмеченная группа удаляется при составлении соответствующей Ява программы.
Для того чтобы закомментировать примитив нужно написать в его начало две наклонные черты. Соответствующая строка включается в Ява программу (как комментарий).
Для комментирования примитива к примитиву нужно добавить комментарий (зелёным). Он переходит в Ява программу, где к нему в начало добавляются две наклонные черты.
К структурам и описаниям методов можно добавить комментарии как в начало, так и в начало каждой ветви (зелёным). 

В общем, такие комментарии не переходят в соответствующую Ява программу. Исключением является метка структурного оператора.

Как в названиях групп, так и во всех других комментариях можно использовать любые символы, в том числе и русские буквы.
См. также демопрограмму  Grafika.algjava.




Дополнительные вопросы

Oписаниe импорта и статических переменных

В начале программы могут быть приведены oписания импорта и статических переменныx. Например,
import javax.swing.JOptionPane; 
static boolean on = true;       //
oписаниe  статическoй переменнoй(on)

Cтатическая переменная используема во всех методах,  в том числе и в главном методе.
Не допускается включение oписаний импорта и статических переменныx в состав группы.


Отмеченные структурные оператоpы

Метка структурного оператора пишется в начале схемы на место комментария схемы. Метка – это идентификатор (в смысле Явa), уникальный в пределах программы. Метка (дополненная двоеточием) переходит в соответствующую Ява программу.
Внутри отмеченного оператора,  на более глубоком уровне, можно использовать оператор прерывания
   break метка;    // прерываeтся выполнение этого структурного операторa

или, в случае, когда отмечен оператор цикла – оператор продолжения
   continue метка; // прерываeтся выполнение тела этого структурного операторa (цикла)


Свойства системы

Свойства системы определяются (устанавливаются) в файле Amadeus.properties. Они учитываются при каждом запуске системы.
NB!
Разделитель '\' пишется вдвойне ('/' – один раз).

Название свойства

Вид значения; значение по умолчанию

Назначение

Пример

AmadeusDirectory

Полный путь

Путь к домашнему каталогу Amadeus_AlgJava

AmadeusDirectory = D:\\AlgJava

defaultOpenDirectory

Полный путь; по умолчанию текущий (.)

Начало пути поиска в файловых диалогах

defaultOpenDirectory = D:\\AlgJava\\Portfolio

myMacros

( фИмя[.тип] )+
По умолчанию
тип = html

Список имён файлов с макросами, изначально активируемых

myMacros = AltGrMacro AlgJavaMacro

startProject

Имя файла с описанием проекта;
тип по умолчанию: html

Проект, открывающийся при старте системы

startProject = AlgJavaWorks

defaultFont

имя, стиль, размер

стиль:

0-plain / 1-bold /

2-italic/ 3-bolditalic

Используемый шрифт (фонт)

defaultFont = Times New Roman, 1, 14

iconImageFileName

По умолчанию: AmadeusDirectory
\\gif\\collapsed.gif

Имя файла, из которого берётся иконка

iconImageFileName = D:\\Algjava\\gif\\collapsed2.gif

autoSaveTimePeriod

Целое число без знака; по умолчанию 1

Через сколько минут происходит автоматическое сохранение открытых файлов

autoSaveTimePeriod = 3

locale

ENG | EST | RUS
По умолчанию: ENG

Язык системы

locale = EST

selectionIntensity

LIGHT | DARK
По умолчанию: DARK

Интенсивность цвета отображения выбора

selectionIntensity = LIGHT




Миграция между операционными системами


NB! Из-за распределительных файловых систем в разных операционных системах нужно работать в разных домашних каталогах AlgJava.

Миграция из операционной системы A в операционную систему B:

Раньше работали в операционной системе А в каталоге AlgJavaA. Составленные программы находятся в каталоге workspace.
Есть желание перейти с программами для работы в операционную систему B.

Нужно: перенести программы (*.algjava) и соответственно дополнить список программ в проекте.

Точнее:

1. Создать каталог AlgJava AlgJavaB (если ещё нет).

2. Перенести (скопировать) программы *.algjava:
   AlgJavaA|workspace ==> AlgJavaB|workspace    (| обозначает разделитель,  \  или  /)

3. В каталоге AlgJavaB запустить (в операционной системе B) обычным образом 

систему Aмадеус_АлгЯвa

4. Открыть проект AlgJavaWorks (если ещё не открыт), в него перенести список программ, например

 Рамка>Новый  

   Файл>Импортировать   ... AlgJavaA|Protfolio|AlgJavaWorks.html
   Выбрать список программ, скопировать (Ctrl+c).
   Перейти в окно проекта (B), вставить (Ctrl+v).
   Сохранить проект (B): Файл>Экспортировать ... AlgJavaB|AlgJavaWorks.html

5. Если ранее в работе были измены файлы с макросами (например MyAlgJavaMacro.html), тогда надо перенести и их:
   
AlgJavaA|macros|MyAlgJavaMacro.html ==> AlgJavaB|macros|MyAlgJavaMacro.html

6.
Если ранее в работе были измены свойства системы, тогда надо исправить и файл со свойствами системы
  
AlgJavaB|Amadeus.properties по примеру файла AlgJavaA|Amadeus.properties.
  
Изменения устанавливаются при следующем старте.

 

 

Раздел действий проекта

Раздел действий проекта находится в первой ветке проекта (во второй ветке находится список файлов программ, входящих в AlgJava проект). Раздел действий в свою очередь состоит из трёх секций (подсхем) с именами Paths, Open-script и  Save-script.
Далее объясняется раздел действий проекта на примере проекта AlgJavaDemo. Второй проект AlgJavaWorks, дающийся вместе с системой, очень похож на первый, только рабочим каталогом назначен workspace, а не demo.

В первой секции (Paths) декларируются имена (названия), которые используются в оставшихся двух секциях и в следующих примитивах данной секции:
Paths   
   Kaust: .\demo
                                                    --- Для Linux и SunOС: Kaust: ./demo
   JavaComp: javac -sourcepath "{Kaust}" -classpath "{Kaust}" -d "{Kaust}"

   JavaRun: runMain.bat "{Kaust}"
   JavaRunGr: java -cp "{Kaust}"
Main  --- Для Linux и SunOС: runMainGr.bat "{Kaust}"
Определённые здесь именаKaust JavaComp, JavaRun и JavaRunGr.
  
Во второй секции (Open-script) определяются команды меню (в случае рассматриваемого примера одна команда), которые выполняются
при открытии программы.
Open-script
   Import: path=Kaust       --- перенести программу AlgJava в окно программы из каталога Kaust (следовательно .\demo)

В третей секции (Save-script) описываются команды меню и процесс (командная строка), которые выполняются, если в текущем окне программы AlgJava вызывается 
Файл>Cохранить.
В следующих пояснениях именем текущей программы считается pr.algjava.

Save-script --- Windows 
   Export plain-HTML: path=Kaust

             ---
сохранить текущую программу AlgJava pr.algjava из окна программы в каталог Kaust
   Textualize+Write text: path=Kaust ext=java

             --- 
преобразовать текущую программу AlgJava в текст и записать результат pr.java  в папку  Kaust
   Process: " {JavaComp} path=Kaust ext=java

            && start "KONSOOL" {JavaRun} arg0 arg1 ... arg7 "

--- 1)
откомпилировать  pr.java из каталога Kaust (в случае успешной компиляции результат Main.class сохраняется в каталог Kaust)
--- 2) открыть новое консольное окно (с именем KONSOOL) и
--- 3) в нём запустить runMain.bat .\demo arg0 arg1 ... arg7

Save-script  
--- Linux и SunOS
   Export plain-HTML: path=Kaust
             ---
сохранить текущую программу AlgJava pr.algjava из окна программы в каталог Kaust  
   Textualize+Write text: path=Kaust ext=java
             ---
преобразовать текущую программу AlgJava в текст и записать результат pr.java в каталог Kaust
   Process: " export LANG=et_EE.iso8859-15     --- отсутствует для SunOS
            && {JavaComp} path=Kaust ext=java
            && sh {JavaRun} arg0 arg1 ... arg7 "
--- (1)
установить переменную среды LANG
--- 2)
откомпилировать  pr.java из каталога Kaust (в случае успешной компиляции результат Main.class сохраняется в каталог Kaust)
--- 3) запустить runMain.bat ./demo arg0 arg1 ... arg7

Командный файл
runMain.bat --Windows XP:
echo off
IF NOT EXIST "%systemroot%\system32\tasklist.exe" GOTO NOTASKLIST
IF NOT EXIST x.bat ECHO REM>x.bat
x 2> log1.txt 1>log.txt & ECHO REM > x.bat && tasklist /nh /fi "Imagename eq cmd.exe" |
java -cp . GetPID_WinXP > x.bat && java -cp %1 Main %2 %3 %4 %5 %6 %7 %8 %9
GOTO END
:NOTASKLIST
java -cp %1 Main %2 %3 %4 %5 %6 %7 %8 %9
:END

  
В упрощенном виде (не пытается при следующем запуске закрыть при предыдущем запуске открытое консольное окно):
echo off
java -cp %1 Main %2 %3 %4 %5 %6 %7 %8 %9
Этот упрощенный командный файл можно использовать в случае, когда конкретная версия Windows XP не разрешает команды tasklist и taskkill. Если эти команды выполняемы, тогда при желании из командного файла можно удалить вторую и последние чeтыpe строчки:
echo off
IF NOT EXIST x.bat ECHO REM>x.bat
x 2> log1.txt 1>log.txt & ECHO REM > x.bat && tasklist /nh /fi "Imagename eq cmd.exe" |
java -cp . GetPID_WinXP > x.bat && java -cp %1 Main %2 %3 %4 %5 %6 %7 %8 %9


 
runMain.bat  --Linux:
xterm -hold -geometry 100x60+100+100 -e java -cp $1 Main $2 $3 $4 $5 $6 $7 $8 $9

runMain.bat
   --SunOS:
xterm  -geometry 100x60+100+100 -e java -cp $1 Main $2 $3 $4 $5 $6 $7 $8 $9

Совет.
Для графических программ, где консольное окно не имеет значения, можно в секции Save-script вместо имени JavaRun использовать имя JavaRunGr. Для Linux и SunOS тогда используется командный файл   runMainGr.bat:
 
xterm -e java -cp $1 Main $2 $3 $4 $5 $6 $7 $8 $9
Для Windows просто команда
java -cp "{Kaust}" Main


Kартинки

Начиная с версии 70419 функциональность системы расширена некоторыми (ограниченными) средствами обработки изображений. В текст на АлгЯве можно добавлять картинки и удалять их из текста. Картинки, как правило, не изменяют семантику текста.
Включаемые файлы (*.gif, *.jpg, ...) находятся в каталоге gif / pro.  

Kартинки нельзя добавить в текущую программу (открытую из проекта).






Класс Math: аннотации методов

Method Summary

static double

abs(double a)
          Returns the absolute value of a
double value.

static float

abs(float a)
          Returns the absolute value of a
float value.

static int

abs(int a)
          Returns the absolute value of an
int value.

static long

abs(long a)
          Returns the absolute value of a
long value.

static double

acos(double a)
          Returns the arc cosine of an angle, in the range of 0.0 through pi.

static double

asin(double a)
          Returns the arc sine of an angle, in the range of -pi/2 through pi/2.

static double

atan(double a)
          Returns the arc tangent of an angle, in the range of -pi/2 through pi/2.

static double

atan2(double y, double x)
          Converts rectangular coordinates (
xy) to polar (r, theta).

static double

cbrt(double a)
          Returns the cube root of a
double value.

static double

ceil(double a)
          Returns the smallest (closest to negative infinity)
double value that is greater than or equal to the argument and is equal to a mathematical integer.

static double

cos(double a)
          Returns the trigonometric cosine of an angle.

static double

cosh(double x)
          Returns the hyperbolic cosine of a
double value.

static double

exp(double a)
          Returns Euler's number e raised to the power of a
double value.

static double

expm1(double x)
          Returns ex -1.

static double

floor(double a)
          Returns the largest (closest to positive infinity)
double value that is less than or equal to the argument and is equal to a mathematical integer.

static double

hypot(double x, double y)
          Returns sqrt(x2 +y2) without intermediate overflow or underflow.

static double

IEEEremainder(double f1, double f2)
          Computes the remainder operation on two arguments as prescribed by the IEEE 754 standard.

static double

log(double a)
          Returns the natural logarithm (base e) of a
double value.

static double

log10(double a)
          Returns the base 10 logarithm of a
double value.

static double

log1p(double x)
          Returns the natural logarithm of the sum of the argument and 1.

static double

max(double a, double b)
          Returns the greater of two
double values.

static float

max(float a, float b)
          Returns the greater of two
float values.

static int

max(int a, int b)
          Returns the greater of two
int values.

static long

max(long a, long b)
          Returns the greater of two
long values.

static double

min(double a, double b)
          Returns the smaller of two
double values.

static float

min(float a, float b)
          Returns the smaller of two
float values.

static int

min(int a, int b)
          Returns the smaller of two
int values.

static long

min(long a, long b)
          Returns the smaller of two
long values.

static double

pow(double a, double b)
          Returns the value of the first argument raised to the power of the second argument.

static double

random()
          Returns a
double value with a positive sign, greater than or equal to 0.0 and less than 1.0.

static double

rint(double a)
          Returns the
double value that is closest in value to the argument and is equal to a mathematical integer.

static long

round(double a)
          Returns the closest
long to the argument.

static int

round(float a)
          Returns the closest
int to the argument.

static double

signum(double d)
          Returns the signum function of the argument; zero if the argument is zero, 1.0 if the argument is greater than zero, -1.0 if the argument is less than zero.

static float

signum(float f)
          Returns the signum function of the argument; zero if the argument is zero, 1.0f if the argument is greater than zero, -1.0f if the argument is less than zero.

static double

sin(double a)
          Returns the trigonometric sine of an angle.

static double

sinh(double x)
          Returns the hyperbolic sine of a
double value.

static double

sqrt(double a)
          Returns the correctly rounded positive square root of a
double value.

static double

tan(double a)
          Returns the trigonometric tangent of an angle.

static double

tanh(double x)
          Returns the hyperbolic tangent of a
double value.

static double

toDegrees(double angrad)
          Converts an angle measured in radians to an approximately equivalent angle measured in degrees.

static double

toRadians(double angdeg)
          Converts an angle measured in degrees to an approximately equivalent angle measured in radians.

static double

ulp(double d)
          Returns the size of an ulp of the argument.

static float

ulp(float f)
          Returns the size of an ulp of the argument.

 



Класс String: аннотации методов

Method Summary

 char

charAt(int index)
          Returns the
char value at the specified index.

 int

codePointAt(int index)
          Returns the character (Unicode code point) at the specified index.

 int

codePointBefore(int index)
          Returns the character (Unicode code point) before the specified index.

 int

codePointCount(int beginIndex, int endIndex)
          Returns the number of Unicode code points in the specified text range of this
String.

 int

compareTo(String anotherString)
          Compares two strings lexicographically.

 int

compareToIgnoreCase(String str)
          Compares two strings lexicographically, ignoring case differences.

 String

concat(String str)
          Concatenates the specified string to the end of this string.

 boolean

contains(CharSequence s)
          Returns true if and only if this string contains the specified sequence of char values.

 boolean

contentEquals(CharSequence cs)
          Returns
true if and only if this String represents the same sequence of char values as the specified sequence.

 boolean

contentEquals(StringBuffer sb)
          Returns
true if and only if this String represents the same sequence of characters as the specified StringBuffer.

static String

copyValueOf(char[] data)
          Returns a String that represents the character sequence in the array specified.

static String

copyValueOf(char[] data, int offset, int count)
          Returns a String that represents the character sequence in the array specified.

 boolean

endsWith(String suffix)
          Tests if this string ends with the specified suffix.

 boolean

equals(Object anObject)
          Compares this string to the specified object.

 boolean

equalsIgnoreCase(String anotherString)
          Compares this
String to another String, ignoring case considerations.

static String

format(Locale l, String format, Object... args)
          Returns a formatted string using the specified locale, format string, and arguments.

static String

format(String format, Object... args)
          Returns a formatted string using the specified format string and arguments.

 byte[]

getBytes()
          Encodes this
String into a sequence of bytes using the platform's default charset, storing the result into a new byte array.

 void

getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
          Deprecated. This method does not properly convert characters into bytes. As of JDK 1.1, the preferred way to do this is via the
getBytes() method, which uses the platform's default charset.

 byte[]

getBytes(String charsetName)
          Encodes this
String into a sequence of bytes using the named charset, storing the result into a new byte array.

 void

getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
          Copies characters from this string into the destination character array.

 int

hashCode()
          Returns a hash code for this string.

 int

indexOf(int ch)
          Returns the index within this string of the first occurrence of the specified character.

 int

indexOf(int ch, int fromIndex)
          Returns the index within this string of the first occurrence of the specified character, starting the search at the specified index.

 int

indexOf(String str)
          Returns the index within this string of the first occurrence of the specified substring.

 int

indexOf(String str, int fromIndex)
          Returns the index within this string of the first occurrence of the specified substring, starting at the specified index.

 String

intern()
          Returns a canonical representation for the string object.

 int

lastIndexOf(int ch)
          Returns the index within this string of the last occurrence of the specified character.

 int

lastIndexOf(int ch, int fromIndex)
          Returns the index within this string of the last occurrence of the specified character, searching backward starting at the specified index.

 int

lastIndexOf(String str)
          Returns the index within this string of the rightmost occurrence of the specified substring.

 int

lastIndexOf(String str, int fromIndex)
          Returns the index within this string of the last occurrence of the specified substring, searching backward starting at the specified index.

 int

length()
          Returns the length of this string.

 boolean

matches(String regex)
          Tells whether or not this string matches the given regular expression.

 int

offsetByCodePoints(int index, int codePointOffset)
          Returns the index within this
String that is offset from the given index by codePointOffset code points.

 boolean

regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
          Tests if two string regions are equal.

 boolean

regionMatches(int toffset, String other, int ooffset, int len)
          Tests if two string regions are equal.

 String

replace(char oldChar, char newChar)
          Returns a new string resulting from replacing all occurrences of
oldChar in this string with newChar.

 String

replace(CharSequence target, CharSequence replacement)
          Replaces each substring of this string that matches the literal target sequence with the specified literal replacement sequence.

 String

replaceAll(String regex, String replacement)
          Replaces each substring of this string that matches the given regular expression with the given replacement.

 String

replaceFirst(String regex, String replacement)
          Replaces the first substring of this string that matches the given regular expression with the given replacement.

 String[]

split(String regex)
          Splits this string around matches of the given regular expression.

 String[]

split(String regex, int limit)
          Splits this string around matches of the given regular expression.

 boolean

startsWith(String prefix)
          Tests if this string starts with the specified prefix.

 boolean

startsWith(String prefix, int toffset)
          Tests if this string starts with the specified prefix beginning a specified index.

 CharSequence

subSequence(int beginIndex, int endIndex)
          Returns a new character sequence that is a subsequence of this sequence.

 String

substring(int beginIndex)
          Returns a new string that is a substring of this string.

 String

substring(int beginIndex, int endIndex)
          Returns a new string that is a substring of this string.

 char[]

toCharArray()
          Converts this string to a new character array.

 String

toLowerCase()
          Converts all of the characters in this
String to lower case using the rules of the default locale.

 String

toLowerCase(Locale locale)
          Converts all of the characters in this
String to lower case using the rules of the given Locale.

 String

toString()
          This object (which is already a string!) is itself returned.

 String

toUpperCase()
          Converts all of the characters in this
String to upper case using the rules of the default locale.

 String

toUpperCase(Locale locale)
          Converts all of the characters in this
String to upper case using the rules of the given Locale.

 String

trim()
          Returns a copy of the string, with leading and trailing whitespace omitted.

static String

valueOf(boolean b)
          Returns the string representation of the
boolean argument.

static String

valueOf(char c)
          Returns the string representation of the
char argument.

static String

valueOf(char[] data)
          Returns the string representation of the
char array argument.

static String

valueOf(char[] data, int offset, int count)
          Returns the string representation of a specific subarray of the
char array argument.

static String

valueOf(double d)
          Returns the string representation of the
double argument.

static String

valueOf(float f)
          Returns the string representation of the
float argument.

static String

valueOf(int i)
          Returns the string representation of the
int argument.

static String

valueOf(long l)
          Returns the string representation of the
long argument.

static String

valueOf(Object obj)
          Returns the string representation of the
Object argument.

 


Класс Integer: аннотации методов

Method Summary

static int

bitCount(int i)
          Returns the number of one-bits in the two's complement binary representation of the specified
int value.

 byte

byteValue()
          Returns the value of this
Integer as a byte.

 int

compareTo(Integer anotherInteger)
          Compares two
Integer objects numerically.

static Integer

decode(String nm)
          Decodes a
String into an Integer.

 double

doubleValue()
          Returns the value of this
Integer as a double.

 boolean

equals(Object obj)
          Compares this object to the specified object.

 float

floatValue()
          Returns the value of this
Integer as a float.

static Integer

getInteger(String nm)
          Determines the integer value of the system property with the specified name.

static Integer

getInteger(String nm, int val)
          Determines the integer value of the system property with the specified name.

static Integer

getInteger(String nm, Integer val)
          Returns the integer value of the system property with the specified name.

 int

hashCode()
          Returns a hash code for this
Integer.

static int

highestOneBit(int i)
          Returns an
int value with at most a single one-bit, in the position of the highest-order ("leftmost") one-bit in the specified int value.

 int

intValue()
          Returns the value of this
Integer as an int.

 long

longValue()
          Returns the value of this
Integer as a long.

static int

lowestOneBit(int i)
          Returns an
int value with at most a single one-bit, in the position of the lowest-order ("rightmost") one-bit in the specified int value.

static int

numberOfLeadingZeros(int i)
          Returns the number of zero bits preceding the highest-order ("leftmost") one-bit in the two's complement binary representation of the specified
int value.

static int

numberOfTrailingZeros(int i)
          Returns the number of zero bits following the lowest-order ("rightmost") one-bit in the two's complement binary representation of the specified
int value.

static int

parseInt(String s)
          Parses the string argument as a signed decimal integer.

static int

parseInt(String s, int radix)
          Parses the string argument as a signed integer in the radix specified by the second argument.

static int

reverse(int i)
          Returns the value obtained by reversing the order of the bits in the two's complement binary representation of the specified
int value.

static int

reverseBytes(int i)
          Returns the value obtained by reversing the order of the bytes in the two's complement representation of the specified
int value.

static int

rotateLeft(int i, int distance)
          Returns the value obtained by rotating the two's complement binary representation of the specified
int value left by the specified number of bits.

static int

rotateRight(int i, int distance)
          Returns the value obtained by rotating the two's complement binary representation of the specified
int value right by the specified number of bits.

 short

shortValue()
          Returns the value of this
Integer as a short.

static int

signum(int i)
          Returns the signum function of the specified
int value.

static String

toBinaryString(int i)
          Returns a string representation of the integer argument as an unsigned integer in base 2.

static String

toHexString(int i)
          Returns a string representation of the integer argument as an unsigned integer in base 16.

static String

toOctalString(int i)
          Returns a string representation of the integer argument as an unsigned integer in base 8.

 String

toString()
          Returns a
String object representing this Integer's value.

static String

toString(int i)
          Returns a
String object representing the specified integer.

static String

toString(int i, int radix)
          Returns a string representation of the first argument in the radix specified by the second argument.

static Integer

valueOf(int i)
          Returns a
Integer instance representing the specified int value.

static Integer

valueOf(String s)
          Returns an
Integer object holding the value of the specified String.

static Integer

valueOf(String s, int radix)
          Returns an
Integer object holding the value extracted from the specified String when parsed with the radix given by the second argument.




Класс Double: аннотации методов

Method Summary

 byte

byteValue()
          Returns the value of this
Double as a byte (by casting to a byte).

static int

compare(double d1, double d2)
          Compares the two specified
double values.

 int

compareTo(Double anotherDouble)
          Compares two
Double objects numerically.

static long

doubleToLongBits(double value)
          Returns a representation of the specified floating-point value according to the IEEE 754 floating-point "double format" bit layout.

static long

doubleToRawLongBits(double value)
          Returns a representation of the specified floating-point value according to the IEEE 754 floating-point "double format" bit layout, preserving Not-a-Number (
NaN) values.

 double

doubleValue()
          Returns the
double value of this Double object.

 boolean

equals(Object obj)
          Compares this object against the specified object.

 float

floatValue()
          Returns the
float value of this Double object.

 int

hashCode()
          Returns a hash code for this
Double object.

 int

intValue()
          Returns the value of this
Double as an int (by casting to type int).

 boolean

isInfinite()
          Returns
true if this Double value is infinitely large in magnitude, false otherwise.

static boolean

isInfinite(double v)
          Returns
true if the specified number is infinitely large in magnitude, false otherwise.

 boolean

isNaN()
          Returns
true if this Double value is a Not-a-Number (NaN), false otherwise.

static boolean

isNaN(double v)
          Returns
true if the specified number is a Not-a-Number (NaN) value, false otherwise.

static double

longBitsToDouble(long bits)
          Returns the
double value corresponding to a given bit representation.

 long

longValue()
          Returns the value of this
Double as a long (by casting to type long).

static double

parseDouble(String s)
          Returns a new
double initialized to the value represented by the specified String, as performed by the valueOf method of class Double.

 short

shortValue()
          Returns the value of this
Double as a short (by casting to a short).

static String

toHexString(double d)
          Returns a hexadecimal string representation of the
double argument.

 String

toString()
          Returns a string representation of this
Double object.

static String

toString(double d)
          Returns a string representation of the
double argument.

static Double

valueOf(double d)
          Returns a
Double instance representing the specified double value.

static Double

valueOf(String s)
          Returns a
Double object holding the double value represented by the argument string s.

 


Класс Graphics: аннотации методов

Method Summary

abstract  void

clearRect(int x, int y, int width, int height)
          Clears the specified rectangle by filling it with the background color of the current drawing surface.

abstract  void

clipRect(int x, int y, int width, int height)
          Intersects the current clip with the specified rectangle.

abstract  void

copyArea(int x, int y, int width, int height, int dx, int dy)
          Copies an area of the component by a distance specified by
dx and dy.

abstract  Graphics

create()
          Creates a new
Graphics object that is a copy of this Graphics object.

 Graphics

create(int x, int y, int width, int height)
          Creates a new
Graphics object based on this Graphics object, but with a new translation and clip area.

abstract  void

dispose()
          Disposes of this graphics context and releases any system resources that it is using.

 void

draw3DRect(int x, int y, int width, int height, boolean raised)
          Draws a 3-D highlighted outline of the specified rectangle.

abstract  void

drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
          Draws the outline of a circular or elliptical arc covering the specified rectangle.

 void

drawBytes(byte[] data, int offset, int length, int x, int y)
          Draws the text given by the specified byte array, using this graphics context's current font and color.

 void

drawChars(char[] data, int offset, int length, int x, int y)
          Draws the text given by the specified character array, using this graphics context's current font and color.

abstract  boolean

drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
          Draws as much of the specified image as is currently available.

abstract  boolean

drawImage(Image img, int x, int y, ImageObserver observer)
          Draws as much of the specified image as is currently available.

abstract  boolean

drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)
          Draws as much of the specified image as has already been scaled to fit inside the specified rectangle.

abstract  boolean

drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
          Draws as much of the specified image as has already been scaled to fit inside the specified rectangle.

abstract  boolean

drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)
          Draws as much of the specified area of the specified image as is currently available, scaling it on the fly to fit inside the specified area of the destination drawable surface.

abstract  boolean

drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
          Draws as much of the specified area of the specified image as is currently available, scaling it on the fly to fit inside the specified area of the destination drawable surface.

abstract  void

drawLine(int x1, int y1, int x2, int y2)
          Draws a line, using the current color, between the points
(x1, y1) and (x2, y2) in this graphics context's coordinate system.

abstract  void

drawOval(int x, int y, int width, int height)
          Draws the outline of an oval.

abstract  void

drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
          Draws a closed polygon defined by arrays of x and y coordinates.

 void

drawPolygon(Polygon p)
          Draws the outline of a polygon defined by the specified
Polygon object.

abstract  void

drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
          Draws a sequence of connected lines defined by arrays of x and y coordinates.

 void

drawRect(int x, int y, int width, int height)
          Draws the outline of the specified rectangle.

abstract  void

drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
          Draws an outlined round-cornered rectangle using this graphics context's current color.

abstract  void

drawString(AttributedCharacterIterator iterator, int x, int y)
          Draws the text given by the specified iterator, using this graphics context's current color.

abstract  void

drawString(String str, int x, int y)
          Draws the text given by the specified string, using this graphics context's current font and color.

 void

fill3DRect(int x, int y, int width, int height, boolean raised)
          Paints a 3-D highlighted rectangle filled with the current color.

abstract  void

fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
          Fills a circular or elliptical arc covering the specified rectangle.

abstract  void

fillOval(int x, int y, int width, int height)
          Fills an oval bounded by the specified rectangle with the current color.

abstract  void

fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
          Fills a closed polygon defined by arrays of x and y coordinates.

 void

fillPolygon(Polygon p)
          Fills the polygon defined by the specified Polygon object with the graphics context's current color.

abstract  void

fillRect(int x, int y, int width, int height)
          Fills the specified rectangle.

abstract  void

fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
          Fills the specified rounded corner rectangle with the current color.

 void

finalize()
          Disposes of this graphics context once it is no longer referenced.

abstract  Shape

getClip()
          Gets the current clipping area.

abstract  Rectangle

getClipBounds()
          Returns the bounding rectangle of the current clipping area.

 Rectangle

getClipBounds(Rectangle r)
          Returns the bounding rectangle of the current clipping area.

 Rectangle

getClipRect()
          Deprecated. As of JDK version 1.1, replaced by
getClipBounds().

abstract  Color

getColor()
          Gets this graphics context's current color.

abstract  Font

getFont()
          Gets the current font.

 FontMetrics

getFontMetrics()
          Gets the font metrics of the current font.

abstract  FontMetrics

getFontMetrics(Font f)
          Gets the font metrics for the specified font.

 boolean

hitClip(int x, int y, int width, int height)
          Returns true if the specified rectangular area might intersect the current clipping area.

abstract  void

setClip(int x, int y, int width, int height)
          Sets the current clip to the rectangle specified by the given coordinates.

abstract  void

setClip(Shape clip)
          Sets the current clipping area to an arbitrary clip shape.

abstract  void

setColor(Color c)
          Sets this graphics context's current color to the specified color.

abstract  void

setFont(Font font)
          Sets this graphics context's font to the specified font.

abstract  void

setPaintMode()
          Sets the paint mode of this graphics context to overwrite the destination with this graphics context's current color.

abstract  void

setXORMode(Color c1)
          Sets the paint mode of this graphics context to alternate between this graphics context's current color and the new specified color.

 String

toString()
          Returns a
String object representing this Graphics object's value.

abstract  void

translate(int x, int y)
          Translates the origin of the graphics context to the point (xy) in the current coordinate system.