Медленно, но верно мы продвигаемся по ступенькам Java программирования. Сегодня мы познакомимся с его компонентами, без которых невозможно продвигаться дальше. За одну статью я не успею описать всё, поэтому эта тема будет продолжена в следующем месяце (а возможно, что и через месяц тоже).
Если у тебя браузер умеет показывать Java - аплеты, то ты можешь увидеть результат сегодняшней работы в действии справа от этого текста. Если нет, то зачем ты вообще читаешь эту статью, ведь тебе не на чем будет тестировать свои извращения.
Когда налюбуешься примером и надоест нажимать на кнопки, переходи к изучению анатомии этого компонента.
Сазу же взглянём на полный исходный код ButtonDemo.java .
import java.awt.*;
import java.applet.*;
public class ButtonDemo extends Applet {
public void init() {
setLayout(null);
int width = Integer.parseInt(getParameter("width"));
int height = Integer.parseInt(getParameter("height"));
Button yes = new Button("Давай");
Button no = new Button("Не стоит");
Button cancel = new Button("Ну его нафиг");
add(yes);
add(no);
add(cancel);
yes.reshape(2, 0, width-4, height / 3);
no.reshape(2, height / 3, width-4, height / 3);
cancel.reshape(2, 2 * height / 3, width-4, height / 3);
} }
Текста не так уж и много, и он не очень сложен. Но я всё же растолкую, о чём тут идёт речь. Для человека, только вступающего на трудный путь программирования, и это может показаться сложным. Но я тебе докажу, что самое сложное здесь - это подумать, а когда это сделаешь, всё встаёт на свои места.
Первые две строчки уже должны быть понятны. Это мы подключаем модули Java, а именно все модули awt и applet. После этого объявляется новый класс ButtonDemo и основная его функция init, без которой не куды не денешься.
Внутри функции я начинаю с того, что устанавливаю выравниватель setLayout(null). В качестве параметра я передаю ноль, чтобы не было никакого выравнивания, пока что нам этого достаточно.
Далее я получаю ширину и высоту апплета (int width = Integer.parseInt(getParameter("width"))) с помощью функции getParameter с параметром width и height .
Далее я создаю три кнопки. Рассмотрим первую из них:
Button yes = new Button("Давай");
Функция new создаёт новый объект типа Button (кнопка). В скобках у Button, в кавычках указывается заголовок кнопки. Итак, "new Button("Давай")" создаёт новую кнопку с заголовком "Давай". Результат записывается в переменную yes типа Button. Через эту переменную мы будем обращаться к созданной кнопке.
Теперь, созданные кнопки нужно добавить к апплету. Это делается с помощью функции add, а в скобках указывается кнопка, которую нужно добавить.
Кнопки созданы, установлены на апплете, осталось только установить их размеры. Для этого используется метод reshape объекта Button . В качестве параметров, передаются левая верхняя позиция, ширина и высота (Кнопка.reshape( Левая, Правая, Ширина, Высота).
Как видишь всё очень просто. Мы не так уж сильно напрягли мозги, поэтому изучим ещё и CheckBox. Результат смотри справа, а исходник смотри ниже:
import java.awt.*;
import java.applet.*;
public class CheckBoxDemo extends Applet {
public void init() {
setLayout(null);
int width = Integer.parseInt(getParameter("width"));
int height = Integer.parseInt(getParameter("height"));
Checkbox Delph = new Checkbox("Delphi", null, true);
Checkbox Jav = new Checkbox("Java");
add(Delph);
add(Jav);
Delph.reshape(30, 0, width, height / 2);
Jav.reshape(30, height / 2, width, height / 2);
} }
Практически всё уже знакомо, единственное отличие в том, как создаётся CheckBox. Рассмотрим первый CheckBox:
Checkbox Delph = new Checkbox("Delphi", null, true);
Новый CheckBox создаётся так же как и кнопка с помощью функции new. Далее идёт тип, который создаётся (Checkbox) и в скобках его параметры. Первый параметр - это заголовок, второй должен быть null , а третий указывает значение по умолчанию. Первый CheckBox я создал в выделенном состоянии. Результат создания записывается в переменную Delph типа CheckBox.
Когда я создавал второй CheckBox, я указал только заголовок, а остальные параметры упустил. Это не ошибка, как может показаться. Если не указывать второй и третий параметр, то Java создаст не выделенный CheckBox.
И напоследок, я познакомлю тебя с компонентом Label. Результат смотри справа, а исходник снизу:
import java.awt.*;
import java.applet.*;
public class LabelDemo extends Applet {
public void init() {
setLayout(null);
int width = Integer.parseInt(getParameter("width"));
int height = Integer.parseInt(getParameter("height"));
Label left = new Label("Left", Label.LEFT);
Label right = new Label("Right", Label.RIGHT);
Label center = new Label("Center", Label.CENTER);
add(left);
add(right);
add(center);
left.reshape(0, 0, width, height / 3);
right.reshape(0, height / 3, width, height / 3);
center.reshape(0, 2 * height / 3, width, height / 3);
} }
Рассмотрим только создание label, а остальное всё должно быть понятно.
Label left = new Label("Left", Label.LEFT);
Первый параметр - заголовок, который ты можешь видеть. Второй параметр - выравнивание по горизонтали.
Вот и всё. Сегодня мы познакомились с первыми тремя компонентами Java. Через месяц я продолжу знакомство с компонентами, а на сегодня всё.