>import java.awt.*;
>import java.applet.*;
>public class ChoiceDemo extends Applet {
>public void init() {
>setLayout(null);
>int width = Integer.parseInt(getParameter("width"));
>int height = Integer.parseInt(getParameter("height"));
>Choice os = new Choice();
>Choice browser = new Choice();
>os.addItem("Windows XP");
>os.addItem("Windows 2000");
>os.addItem("Windows 98");
>browser. addItem("Netscape Navigator");
>browser.addItem("Mozula");
>browser.addItem("Internet Explorer ");
>browser.addItem("Mosaic ");
>browser.addItem("Lynx ");
>browser.select("Netscape Navigator");
>add(os);
>add(browser);
>os.reshape(0,0, width, height / 2);
>browser.reshape(0, height / 2, width, height / 2);
>}
>}
12.9. Класс List
Класс List представляет собой компактный список с возможностью выбора нескольких вариантов и с прокруткой (аналог ListBox в Windows). Ниже приведен пример с двумя списками выбора, один из которых допускает выбор нескольких элементов, а второй — выбор единственного элемента,
>import java.awt.*;
>import java.applet.*;
>public class ListDemo extends Applet {
>public void initQ { setLayout(null);
>int width = Integer.parseInt(getParameter("width"));
>int height = Integer.parseInt(getParameter(“height"));
>List os = new List(0, true);
>List browser = new List(0, false);
>os.addItem("Windows XP");
>os.addItem("Windows 2000");
>os.addItem("Windows 98");
>browser.addItem("Netscape Navigator ");
>browser.addItem("Netscape Communicator ");
>browser.addItem("lnternet Explorer ");
>browser.addItem("Mosaic ");
>browser.addItem("Lynx ");
>browser.select(1);
>add(os);
>add(browser);
>os.reshape(0, 0, width, height / 2);
>browser.reshape(0, height / 2, width, height / 2);
>}
>}
12.10. Класс Scrollbar
Объекты Scrollbar (линейки прокрутки) используются для выбора подмножества значений между заданными минимумом и максимумом. Визуально у линейки прокрутки есть несколько органов управления, ориентированных либо вертикально, либо горизонтально. Стрелки на каждом из ее концов показывают, что, нажав на них, вы можете продвинуться на один шаг в соответствующем направлении. Текущее положение отображается с помощью движка линейки прокрутки, которым пользователь также может управлять, устанавливая требуемое положение линейки.
Конструктор класса Scrollbar позволяет задавать ориентацию линейки прокрутки — для этого предусмотрены константы VERTICAL и HORIZONTAL. С помощью конструктора можно задать начальное положение и размер движка, а также минимальное и максимальное значения, в пределах которых линейка прокрутки может изменять параметр. Для получения и установки текущего состояния линейки прокрутки используются методы getValue и setValue. Воспользовавшись методами getMinimum и getMaximum, вы можете получить рабочий диапазон объекта. Ниже приведен пример, в котором создается и вертикальная, и горизонтальная линейки прокрутки.
>import java.awt.*;
>import java.applet.*;
>public class ScrollbarDemo extends Applet {
>public void init() {
>setLayout(null);
>int width = Integer.parseInt(getParameter(“width”));
>int height = Integer. parseInt(getParameter(“height"));
>Scrollbar hs = new Scrollbar(Scrollbar.HORIZONTAL, 50, width / 10, 0,100);
>Scrollbar vs = new Scrollbar(Scrollbar.VERTICAL, 50, height / 2,0,100);
>add(hs);
>add(vs);
>int thickness =16;
>hs.reshape(0, height - thickness, width - thickness, thickness);
>vs.reshape(width - thickness, 0, thickness, height - thickness);
>}
>}
12.11. Класс TextField
Класс TextField представляет собой реализацию однострочной области для ввода текста. Такие области часто используются в формах для пользовательского ввода. Вы можете «заморозить» содержимое объекта TextField с помощью метода setEditable, а метод isEditable сообщит вам, можно ли редактировать текст в данном объекте. Текущее значение объекта можно получить методом getText и установить методом setText. С помощью метода select можно выбрать фрагмент строки, задавая его начало и конец, отсчитываемые с нуля. Для выбора всей строки используется метод selectAll.
Метод setEchoChar задает символ, который будет выводиться вместо любых вводимых символов. Вы можете проверить, находится ли объект TextField в этом режиме, с помощью метода echoCharlsSet и узнать, какой именно символ задан для эхо-печати, с помощью метода getEchoChar. Вот пример, в котором создаются классические поля для имени пользователя и пароля.