вас нудной информацией о том, что такое ООП, где оно используется, зачем и т.д. Сразу открываем среду разработки и пишем код!!
Пишем меню на Canvas.
Вариант 1. Меню без ООП.
[file=nonoopmenu.java]NonOopMenu.java[/file]
Как видно, мы определили массив строк items для пунктов меню и числовое значение cursor для текущего выделенного элемента. При выборе пункта меню мы просто выводим Alert с
em ничего не знает про своих потомков. Он не может получить доступ к полю color, icon и методам getIcon(), getColor().
[img=screen.png]screen.png[/img]
Перепишем сам класс меню [file=oopmenu3.java]OopMenu3.java[/file]
Обратите внимание, мы можем в массив MenuItem класть элементы производных классов.
Так тоже можно: MenuItem item = new ColorMenuItem("Name", 0x00);
Но мы не смож
aint(g, startY, itemIndex);
}
То ничего страшного не произойдёт - сначала будет рисоваться иконка, а потом уже текст.
Теперь посмотрим, что это нам даст в методе отрисовке меню. [file=oopmenu4.java]OopMenu4.java[/file]
Большой код в цикле изменился на:
for (int i = 0; i < items.length; i++) {
items[i].paint(g, startY, i);
}
То есть мы перенесли всё необходимое в классы, тем са
перенесём всё, что касается меню в отдельный класс Menu.
Позиция курсора (int cursor), массив с пунктами меню (MenuItem[] items), отрисовка, обработка клавиш теперь будет в классе Menu. [file=menu.java]Menu.java[/file]
Вместо массива я добавил Vector, чтобы можно было динамически добавлять элементы.
Теперь класс Canvas будет ещё проще:
public class OopMenu5 extends Canvas {
priv
и иметь метод currentTrack, который возвращает массив. Напишем такой класс.
package aimpremote;
public final class AIMP {
public static native String[] currentTrack();
}
Скомпилируем AIMP.javajavac aimpremote\AIMP.java
И воспользуемся утилитой для создания заголовочных файлов javah
javah aimpremote.AIMP
В результате получим файл aimpremote_AIMP.h с таким содержимым:
/* DO NOT
n window[/img]
Ограничения
К сожалению, на Linux поддерживается только Unity, да и то, её необходимо включать специальным параметром JVM в .desktop файле, которое запускает приложение:
Exec=java -Djava.desktop.appName=MyApp.desktop -jar /path/to/myapp.jar
Но даже так ничего не работало. Возможно к релизу Java 9 исправят.
[img=shot-20161019t134135.png]Ubuntu[/img]
Проект на GitH
олько один.
[html]<h2 id="stream-instantiation">2. Получение объекта Stream</h2>[/html]
Пока что хватит теории. Пришло время посмотреть, как создать или получить объект java.util.stream.Stream.
- Пустой стрим: Stream.empty() // Stream<String>
- Стрим из List: list.stream() // Stream<String>
- Стрим из Map: map.entrySet().stream() // Stream<Map.Ent
тобы не загромождать классы кучей массивов, информацию будем считывать из файла.
Вот класс для Java SE, который создаёт кодовые таблицы для всех поддерживаемых кодировок.
[file=codepagecreator.java]CodepageCreator.java[/file]
Для загрузки файлов из папки assets, нам понадобится класс CharsetLoader public class CharsetLoader {
private static AssetManager assets;
pub
При написании некоторых игр возникает необходимость создать холмистый ландшафт. Есть множество различных алгоритмов таких как, например, разбиение пополам: берётся прямая линия на всю ширину игровой области, затем берётся середина этой линии и поднимается или опускается на некоторую величину. Затем полученные две линии снова делятся пополам и изменяются на некоторую величину в центральной точке и
ействия через заданный промежуток времени. Например, в какой-нибудь игре нужно выпускать на поле новых монстров каждые 5 секунд. В таком случае удобно использовать таймер, который находится в пакете java.util. Использование таймера крайне простое.
Первым делом необходимо создать экземпляр класса Timer:Timer timer = new Timer();Далее создаем объект TimerTask и переопределяем его метод run(). Нап