Читаем Java 7 полностью

Затем методом add(string text) в список добавляются новые пункты с текстом text. Они располагаются в порядке написания методов add () и нумеруются от нуля.

Вставить новый пункт в нужное место можно методом insert(String text, int position). Выбор пункта можно произвести из программы методом select(String text) или

select(int position).

Удаление одного пункта из списка выполняется методом remove(String text) или

remove (int position), а всех пунктов сразу-методом removeAll().

Число пунктов в списке можно узнать методом getItemCount ( ).

Выяснить, какой пункт находится в позиции pos, можно методом getItem(int pos), возвращающим строку.

Наконец, определение выбранного пункта производится методом getSelectedIndex( ), возвращающим позицию этого пункта, или методом getSelectedItem(), возвращающим выделенную строку.

События

В классе Choice происходят события класса Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent, а при выборе пункта возникает событие ItemEvent.

Список List

Если надо показать на экране несколько пунктов списка, то создайте объект класса 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().

Метод replaceItem(String newItem, int pos)позволяет заменить текст пункта в позиции

pos.

Количество пунктов в списке возвращает метод getItemCount ( ).

Выделенный пункт можно получить методом getSelectedItem(), а его позицию — методом getSelectedIndex().

Если список позволяет осуществить множественный выбор, то выделенные пункты в виде массива типа String[] можно получить методом getSelectedItems(), а позиции выделенных пунктов в виде массива типа int [ ] -методом getSelectedIndexes ( ).

Кроме этих необходимых методов класс List содержит множество других, позволяющих манипулировать пунктами списка и получать его характеристики.

СобытияКроме событий класса Component — ComponentEvent, FocusEvent, KeyEvent, MouseEvent — при двойном щелчке кнопкой мыши на выбранном пункте происходит событие ActionEvent.В листинге 10.2 с помощью классов Choice и List задаются компоненты, аналогичные компонентам листинга 10.1, а рис. 10.2 показывает, как изменится при этом интерфейс.

Листинг 10.2. Использование списков

import java.awt.*; import java.awt.event.*;

class ListTest extends Frame{

ListTest(String s){ super(s); setLayout(null);

setFont(new Font("Serif", Font.BOLD, 15));

Label l1 = new Label("Выберите товар:", Label.CENTER); l1.setBounds(10, 50, 120, 30); add(l1);

Label l2 = new Label("Выберите способ оплаты:");

l2.setBounds(170, 50, 200, 30); add(l2);

List l = 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(170, 90, 200,30); add(ch);

Button b1 = new Button("Продолжить"); b1.setBounds( 30, 150, 100, 30); add(b1);

Button b2 = new Button("Отменить");

b2.setBounds(140, 150, 100, 30); add(b2);

Button b3 = new ButtonC^bM™"); b3.setBounds(250, 150, 100, 30); add(b3);

setSize(400, 200); setVisible(true);

}

public static void main(String[] args){

Frame f = new ListTest(" Простые компоненты"); f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent ev){

System.exit(0);

}

});

}

Рис. 10.2. Использование списков

Компоненты для ввода текста

В библиотеке AWT есть два компонента для ввода текста с клавиатуры: компонент TextField, позволяющий ввести только одну строку, и компонент TextArea, в который можно ввести множество строк.

Оба класса расширяют класс Textcomponent, в котором собраны их общие методы, такие как выделение текста, позиционирование курсора, получение текста.

Класс TextComponent

В классе Textcomponent нет конструктора, этот класс не используется самостоятельно.

Основной метод класса — getText () — возвращает в виде строки string текст, находящийся в поле ввода.

Поле ввода может быть нередактируемым, в этом состоянии текст в поле нельзя изменить с клавиатуры или мышью. Узнать состояние поля можно логическим методом

isEditable ( ), изменить значения в нем — методом setEditable(boolean editable).

Перейти на страницу:

Все книги серии В подлиннике

Java 7
Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Ильдар Шаукатович Хабибуллин

Программирование, программы, базы данных

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных