Сегодня мы продолжим знакомится с Java. В прошлый раз я рассказал только об основах, но сегодня мы напишем более рабочий и интересный пример. Для этого нам понадобиться немного мозгов и нормально заточенные руки. Занятие будет короткое, но полезное.
Прежде чем начать я отвечу на один часто задаваемый мне вопрос: "Как компилировать созданный на Java код". Отвечаю: я для этого использую JBuilder, но ты можешь воспользоваться любым компилятором, хоть голым Java.
Если ты выбрал Jbuilder, то просто открывай написанный мною файл и компилируй его. Для этого в левом верхнем окошке щёлкни правой кнопкой по имени файла и выбери "Rebuild". Если решил использовать голый java, то надо набрать в командной строке javac имя_файла .
Теперь перейдём к рассмотрению нашего примера. В принципе я добавил не многое, но результат выглядит не плохо.
import java.applet.*;
import java.awt.*;
public class HelloWorld extends Applet {
final Font f = new Font("Courier", Font.BOLD, 18);
public void paint(Graphics g) {
Color col;
Dimension d = size();
col = new Color(0, 255, 255);
g.setColor(Color.white);
g.fillRect(0,0,d.width,d.height);
col = new Color(0, 128, 128);
g.setColor(col);
drawCenteredString("VR on-line", d.width, d.height, g);
g.drawRect(0,0,d.width-1,d.height-1);
}
public void drawCenteredString(String s, int w, int h, Graphics g) {
FontMetrics fm = g.getFontMetrics();
int x = (w - fm.stringWidth(s)) / 2;
int y = (fm.getAscent() + (h - (fm.getAscent() + fm.getDescent()))/2);
g.drawString(s, x, y);
} }
Теперь рассмотрим, что у нас здесь происходит. Color col - это я объявляю переменную col типа Color (цвет). Дальше я создаю этот цвет с помощью
col = new Color(0, 255, 255);
Так создаётся цвет со значениями указанными в скобках. Теперь для прапорщиков: переменной col присваивается значение новый Цвет (0, 255, 255). Нечто подобное можно встретить и в С/С++ и в Delphi. Поэтому эта конструкция должна быть тебе понятна. Если нет, то посмотри на неё ещё разок. Если опять ничего не понятно, то включи лампочку, ты сидишь в темноте и ничего не видишь.
g.setColor(Color.white) - выбираю созданный цвет для рисования на аплете.
g.fillRect(0,0,d.width,d.height) - заливаю поле аплета выделенным цветом (в скобачках указаны размеры аплета).
После этого я снова создаю новый цвет и устанавливаю его. Далее вызываеться процедура drawCenteredString, которая написана мною ниже и g.drawRect, которая рисует прямоугольник (оборка для моего аплета).
С процедурой main всё понятно, но осталась только одна непонятная процедура drawCenteredString. В неё я вынес рисование текста. Давай разберём и её. FontMetrics fm = g.getFontMetrics() - возвращает системные метрики, с помощью которых мы определяем ширину выводимого текста fm.stringWidth(текст). Дальше идут две строки чистой математики. Последняя строка выводит текст по рассчитанным координатам g.drawstring(текст, координата Х, координата У).
Вот и всё, ничего сложного тут нет. Если ты закончил хотя бы 5 классов и посещал математику, то особых проблем не будет, а ели ты знаешь один из языков программирования (С/С++ или Delphi), то вообще грех жаловаться.
На сегодня всё. Тише едешь дальше будешь. Если что не понятно, то попробуй поиграть с изменением различных чисел и вс само прейдёт. Если всё же не дойдёт, то пускай слюни глядя на результат работы: