Компонент 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); 

}

}); 

}