setFont(new Font("Serif", Font.PLAIN, 14));
Label 11 = new ЬаЬе1("Ваше имя:", Label.RIGHT); l1.setBounds(20, 30, 70, 25); add(l1);
Label 12 = new Labe1("naponb:", Label.RIGHT);
l2.setBounds(20, 60, 70, 25); add(l2);
TextField tf1 = new TextField(30);
tf1.setBounds(100, 30, 160, 25); add(tf1);
TextField tf2 = new TextField(30); tf2.setBounds(100, 60, 160, 25); add(tf2); tf2.setEchoChar('*');
TextField tf3 = new TextFie1d("Введите сюда Ваш заказ", 30); tf3.setBounds(10, 100, 250, 30); add(tf3);
TextArea ta = new TextArea("Вaш заказ:", 5, 50,
TextArea.SCROLLBARS_NONE);
ta.setEditable(false); ta.setBounds(10, 150, 250, 140); add(ta);
Button b1 = new Вы^о^^риме^^"); b1.setBounds(280, 180, 100, 30); add(b1);
Button b2 = new Button("Отменить");
b2.setBounds(280, 220, 100, 30); add(b2);
Button b3 = new ButtonC'BbM™"); b3.setBounds(280, 260, 100, 30); add(b3);
setSize(400, 300); setVisible(true);
}
public static void main(String[] args){
Frame f = new TextTest(" Поля ввода"); f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
}
}
Рис. 10.3. Поля ввода |
Линейка прокрутки
Компонент Scrollbar- это линейка прокрутки, но В библиотеке AWT класс Scrollbar
используется еще и для организации
Каждая линейка прокрутки охватывает некоторый диапазон значений и хранит текущее значение из этого диапазона. В линейке прокрутки есть пять элементов управления для перемещения по диапазону. Две стрелки на концах линейки вызывают перемещение на одну единицу (unit) в соответствующем направлении при щелчке на стрелке кнопкой мыши. Положение движка или бегунка (bubble, thumb) показывает текущее значение из диапазона и может его изменять при перемещении бегунка с помощью мыши. Два промежутка между движком и стрелками позволяют переместиться на один блок (block) щелчком кнопки мыши.
Смысл понятий "единица" и "блок" зависит от объекта, с которым работает полоса прокрутки. Например, для вертикальной полосы прокрутки при просмотре текста это может быть строка и страница или строка и абзац.
Методы работы с данным компонентом описаны в интерфейсе Adjustable, который реализован классом Scrollbar.
В классе scrollbar три конструктора:
□ Scrollbar () — создает вертикальную полосу прокрутки с диапазоном 0—100, текущим значением 0 и блоком величиной в 10 единиц;
□ Scrollbar (int orientation) - ориентация полосы прокрутки orientation задается од
ной из двух констант: HORIZONTAL или VERTICAL;
□ Scrollbar(int orientation, int value, int visible, int min, int max) — задает, кроме ориентации, еще начальное значение value, размер блока visible, диапазон значений
min—max.
Аргумент visible определяет еще и длину движка — она устанавливается пропорционально диапазону значений и длине полосы прокрутки. Например, конструктор по умолчанию задаст длину движка равной 0,1 длины полосы прокрутки.
Основной метод класса — getValue () — возвращает значение текущего положения движка на полосе прокрутки. Остальные методы доступа позволяют узнать и изменить характеристики объекта, примеры их использования показаны в листинге 15.6.
Кроме событий класса Component — ComponentEvent, FocusEvent, KeyEvent, MouseEvent — при изменении значения пользователем происходит событие AdjustmentEvent.
В листинге 10.4 создаются три вертикальные полосы прокрутки — красная, зеленая и синяя, позволяющие выбрать какое-нибудь значение соответствующего цвета в диапазоне 0—255, с начальным значением 127. Кроме них создается область, заполняемая получившимся цветом, и две кнопки. Линейки прокрутки, их заголовок и масштабные метки помещены в отдельный контейнер p типа Panel. Об этом чуть позже в данной главе.
Как все это выглядит, показано на рис. 10.4.
Рис. 10.4. Полосы прокрутки для выбора цвета В листинге 15.6 мы "оживим" эту программу. |
import java.awt.*; import java.awt.event.*;
class ScrollTest extends Frame{
Scrollbar | sbRed | = new | Scrollbar(Scrollbar.VERTICAL, | 127, | 10, | 0, | 255) |
Scrollbar | sbGreen | = new | Scrollbar(Scrollbar.VERTICAL, | 127, | 10, | 0, | 255) |
Scrollbar | sbBlue | = new | Scrollbar(Scrollbar.VERTICAL, | 127, | 10, | 0, | 255) |
Color mixedColor = new Color(127, 127, 127);
Label lm = new Label();
Button b1 = new Button("Применить");
Button b2 = new Ви^опСОтменить");
ScrollTest(String s){ super(s); setLayout(null);
setFont(new Font("Serif", Font.BOLD, 15));
Panel p = new Panel(); p.setLayout(null);
p.setBounds(10,50, 150, 260); add(p);
Label lc = new ЬаЬе1("Подберите цвет"); lc.setBounds(20, 0, 120, 30); p.add(lc);