Компонент List
Компонент List — это список с полосой прокрутки, в котором можно выделить один или несколько пунктов. Количество видимых на экране пунктов определяется конструктором списка и размером компонента.
В классе три конструктора:
-
List() — создает пустой список с четырьмя видимыми пунктами;
-
List (int rows) — создает пустой список с rows видимыми пунктами;
-
List (int rows, boolean multiple) — создает пустой список в котором можно отметить несколько пунктов, если multiple == true.
После создания объекта в список добавляются пункты с текстом item:
- метод add (String item) — добавляет новый пункт в конец списка;
- метод add (String item, int position) — добавляет новый пункт в позицию position.
Позиции нумеруются по порядку, начиная с нуля.
Удалить пункт МОЖНО методами remove (String item), remove (int position), removeAll ().
Метод repiaceitemtstring newitem, int pos) позволяет заменить текст пункта в позиции pos.
Количество пунктов в списке возвращает метод getitemcount ().
Выделенный пункт можно получить методом getselecteditemo, а его позицию — методом getSelectedlndex ().
Если список позволяет осуществить множественный выбор, то выделенные пункты в виде массива типа string[] можно получить методом getselecteditems (), позиции выделенных пунктов в виде массива типа int[] — методом getSelectedlndexes ().
Кроме этих необходимых методов класс List содержит множество других, позволяющих манипулировать пунктами списка и получать его характеристики.
События
Кроме событий класса Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent, при двойном щелчке кнопкой мыши на выбранном пункте происходит событие ActionEvent.
В листинге 10.2 задаются компоненты, аналогичные компонентам листинга 10.1, с помощью классов choice и List.
Листинг 10.2. Использование списков
import j ava.awt.*;
import j ava.awt.event.*;
class ListTest extends Frame{
ListTest(String s){ super(s);
setLayout(null);
setFont(new Font(«Serif», Font.BOLD, 15));
Label 11 = new Label(«Выберите товар:», Label.CENTER);
l1.setBoundsdO, 50, 120, 30); add (11);
Label 12 = new Label(«Выберите способ оплаты:»);
12.setBounds(170, 50, 200, 30); add(12);
List 1 = new List(2, true);
l.add(«Книги»);
l.add(«Диски»);
l.add(«Игрушки»);
l.setBounds(20, 90, 100, 40); add(l);
Choice ch = new Choice();
ch.add(«Почтовым переводом»);
ch.add(«Кредитной картой»);
ch.setBounds(17О, 90, 200,30); add(ch);
Button bl = new Button(«Продолжить»);
bl.setBounds( 30, 150, 100, 30); add(bl);
Button b2 = new Button(«Отменить»);
Ь2.setBounds(140, 150, 100, 30); add(b2);
Button b3 = new Button(«Выйти»);
ЬЗ.setBounds(250, 150, 100, 30); add(b3);
setSize(400, 200); setVisible(true);
}
public static void main(StringH args){
Frame f = new ListTest(» Простые компоненты»);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
}
}