Иллюстрированный самоучитель по Java
События
Кроме событий класса
Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent
, при изменении
значения пользователем происходит событие Adj ustmentEvent.
В листинге 10.4 создаются три вертикальные
полосы прокрутки — красная, зеленая и синяя, позволяющие выбрать какое-нибудь
значение соответствующего цвета в диапазоне 0—255, с начальным значением 127.
Кроме них создается область, заполняемая получившимся цветом, и две кнопки.
Линейки прокрутки, их заголовок и масштабные метки помещены в отдельный контейнер
р типа Panel. Об этом чуть позже в данной главе.
Как все это выглядит, показано на
рис. 10.4. В листинге 12.6 мы "оживим" эту программу.
Листинг 10.4.
Линейки прокрутки для выбора цвета
import j ava.awt.*;
import j ava.awt.event.*;
class ScrollTest
extends Frame!
Scroiibar sbRed
= new Scroiibar{Scroiibar.VERTICAL, 127, 10, 0, 255);
Scroiibar sbGreen
= new Scroiibar(Scroiibar.VERTICAL, 127, 10, 0, 255);
Scroiibar sbBlue
= new Scroiibar(Scroiibar.VERTICAL, 127, 10, 0, 255);
Color mixedColor
= ,new Color(127, 127, 127);
Label 1m = new
Label();
Button Ы = new
Button("Применить");
Button b2 = new
Button("Отменить");
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 Ic = new
Label("Подберите цвет");
lc.setBounds(20,
0, 120, 30); p.add(lc);
Label Imin = new
Label("0", Label.RIGHT);
lmin.setBounds(0,
30, 30, 30); p.add(lmin);
Label Imiddle
= new Label("127", Label.RIGHT);
Imiddle.setBounds(0,
120, 30, 30); p.add(Imiddle);
Label Imax =
new Label("255", Label.RIGHT);
Imax.setBounds(0,
200, 30, 30); p.add(Imax);
sbRed.setBackground(Color.red);
sbRed.setBounds(40,
30, 20, 200); p.add(sbRed);
sbGreen.setBackground(Color.green);
sbGreen.setBounds(70,
30, 20, 200); p.add(sbGreen);
sbBlue.setBackground(Color.blue);
sbBlue.setBounds(100,
30, 20, 200); p.add{sbBlue);
Label Ip = new
Label("Образец:");
lp.setBounds(250,
50, 120, 30); add dp);
1m.setBackground(new
Color(127, 127, 127));
lm.setBounds(220,
80, 120, 80); add(lm);
bl.setBounds(240,
200, 100, 30); add(bl);
b2.setBounds(240,
240, 100, 30); add(b2);
setSize(400, 300);
setVisible(true);
}
public static
void main(String[] args){
Frame f = new
ScrollTestC' Выбор цвета");
f.addWindowListener(new
WindowAdapter(){
public void windowClosing(WindowEvent
ev){
System.exit(0);
}
});
}
}
Рис. 10.4.
Полосы прокрутки для выбора цвета
В листинге 10.4 использован контейнер
Panel. Рассмотрим возможности этого класса.